Revision: 19154
                            
                                                            
                                    
                                        
Initial Code
                                    
                                    
                                                            
                                    
                                        
Initial URL
                                    
                                    
                                
                                                            
                                    
                                        
Initial Description
                                    
                                    
                                                            
                                    
                                        
Initial Title
                                    
                                    
                                                            
                                    
                                        
Initial Tags
                                    
                                    
                                                            
                                    
                                        
Initial Language
                                    
                                    
                                                    
                        at October 16, 2009 16:19 by ptepper
                            
                            Initial Code
use CGI;  
$query = CGI::new(); 
my %fields_temp = $query->Vars;
my %fields      = ();
foreach my $key (keys %fields_temp) {
    if ( $key =~ /(.+)\[\]$/ ) { ## Handle PHP style array inputs 
        if(exists $fields{$1}){
            $fields{$1} = $fields{$1} . ",". $fields_temp{$key};
        }
        else{
            $fields{$1} = $fields_temp{$key};
        }        
    }
    else {
	$fields{$key} = $fields_temp{$key};
    }
}
foreach my $key (sort keys %fields) {
    unless ($key =~ /(.+)\[\]$/ ){
	push(@keys, $key);
	push(@values, $fields{$key});
    }
}
                                Initial URL
Initial Description
This is inspired by this http://www.cgi101.com/book/ch5/text.html so I'm using a similar example. In PHP you can combine a set of checkboxes into an array using square brackets like this:
<form>
      <input> Red<br>
      <input> Green<br>
      <input> Blue<br>
      <input> Gold<br>
      <input>
</form>
PHP does not do this automatically but it's pretty simple to do if you filter by regular expressions.
                                Initial Title
Process PHP-style array (square brackets) from HTML form in Perl CGI
Initial Tags
php, array, forms, perl
Initial Language
Perl