# 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;