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"; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Struggling with complex data structures and doing useful operations on their elements and populating from arrays
by marinersk (Priest) on Mar 12, 2015 at 14:24 UTC | |
by hiyall (Acolyte) on Mar 12, 2015 at 15:09 UTC | |
by marinersk (Priest) on Mar 12, 2015 at 15:18 UTC |