Hi Monks,
I'm trying to interpolate a string of substrings to load into an array, and wanted to do it in 1 or 2 lines without loading a module. It seems like there should be a better way to DWIM. Here's what I have. Thanks for any ideas.
# the substrings might be single or double qouted my $string = q("one","two","three"); # the obvious variations on direct assignment don't work: my @arr1 = ("$string"); my @arr2 = "$string"; my @arr3 = {"$string"}; # etc # these work, but: # I don't want to use string eval my @array = eval $string; # and this kind of stuff just gets ugly $string =~ s/^[\'\"]//; $string =~ s/[\'\"]$//; my @array2 = split(/[\'\"],[\'\"]/, $string); # is there a better way? use Data::Dumper; print "\nThis is what I'm looking for:\n"; print Dumper \@array; print "\nNot This: \n"; print Dumper \@arr1;
UPDATE: Thanks for the help everyone. I was finally able to set aside my obsessive compulsion about this and finish the rest of my code. The CSV spec I'm dealing with is well defined, so I'll tinker with some of the regex ideas a bit, but may end up looking for a lightweight CSV parser on CPAN.
In reply to Interpolating a string into list context. by hangon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |