ree:
I see you've got plenty of responses from which to choose. But I thought I'd comment anyway. Since you have a variety of methods now at your fingertips, how do you select the one you should use in your application? By looking them over while paying attention to the stated/unstated assumptions.
- Capture only the items you want like:
my @var = $test =~ /\d+/g;
The important assumption in this solution is that the items you want are strings of digits.
- Regex capture followed by split
my ($list) = $test =~ /\[ ( [^\]]+ ) \]/x, $1); my @var = split /,/, $list;
The assumptions here are: (a) your string always contains an argument list surrounded by [ and ].
- Explicitly ignore the first item in an array assignment
(undef, my @var) = ...;
Assumes you always want to delete the first item in the list. As rofv mentions above, another way to ignore the first item is to just use shift after creating your @var array.
- I was originally going to suggest you filter out the empty items (via grep). The assumption being that you don't want any empty items anywhere in your list.
By paying attention to the assumptions your code makes and the assumptions the proposed solutions make, you can select a method with the fewest mismatched assumptions. Note also that assumptions are closely related to constraints--learning to see the assumptions made by code also helps you to recognize constraints in your code. As you recognize them, you can avoid adding gratuitous constraints to your programs.
...roboticus
Update: Replaced empty NOTES: at end with an Update: block. (I removed the item requiring a note without removing the notes block....)
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.