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

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.