in reply to Getting range from N..end with list slice
".." is the range operator. It can create a list of ascending numbers. You need to know the start and end of the range. In general, there's nothing you can count to determine the start and end of the range when doing a list slice.
And here's the doozy. This probably isn't documented, but in a list slice, the index expression is evaluated before the list expression. This means you need to know how many elements split will return before split is even called. That means you need to find an alternate code arrangement.
Some solutions:
(undef, undef, undef, my @set) = split /\s+/, $x; my @set = split /\s+/, $x; splice(@set, 0, 3); my @set = sub { @_[3..$#_] }->( split /\s+/, $x );
The last one hasn't been mentioned yet.
Update: Changed HTML coding so that users of "Enforce proper nesting" could see the DELeleted text.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Getting range from N..end with list slice
by Marshall (Canon) on Nov 28, 2010 at 01:04 UTC | |
by ikegami (Patriarch) on Nov 28, 2010 at 04:22 UTC | |
|
Re^2: Getting range from N..end with list slice
by BrowserUk (Patriarch) on Nov 28, 2010 at 17:24 UTC | |
by ikegami (Patriarch) on Nov 28, 2010 at 18:19 UTC |