The issue is to split into fields but keep those grouped by parantheses together. For comma-separated data it is always advisable to use a module like Text::CSV rather that splitting yourself. Text::CSV cannot directly treat parantheses but if you replace them with double quotes it should work fine.
UPDATE: here is some sample code:
use strict; use warnings; use Text::CSV; my %pets; my @info; $info[0]="Mary,Owens,cat,white"; $info[1]="Bill,Thompson,(cat,dog),(white,black)"; $info[2]="Bill,Thompson,(hamster,cat),(black,brown)"; $info[3]="Bill,Smith,(goldfish,dog,turtle),(yellow,spotted,green)"; s/[()]/"/g for @info; my $csv = Text::CSV->new(); for (@info) { $csv->parse( $_ ); print join ":", map { "\"$_\"" } $csv->fields(); print "\n"; }
In reply to Re: Struggling with complex data structures and doing useful operations on their elements and populating from arrays
by hdb
in thread Struggling with complex data structures and doing useful operations on their elements and populating from arrays
by hiyall
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |