Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Last index use in array slice

by ColonelPanic (Friar)
on Dec 03, 2012 at 09:23 UTC ( #1006827=note: print w/ replies, xml ) Need Help??


in reply to Last index use in array slice

Another way to do it: instead of splitting everything and then ignoring some of it, find and split only the stuff you want.

use strict; use warnings; my $str = "discard\ndiscard\nkeep1\nkeep2"; my $discard = 2; my @arr = ($str =~ /^(?:[^\n]*\n){$discard}(.*)/s ? split /\n/, $1 : ( +) ); print "@arr";


When's the last time you used duct tape on a duct? --Larry Wall


Comment on Re: Last index use in array slice
Download Code
Re^2: Last index use in array slice
by bart (Canon) on Dec 03, 2012 at 13:15 UTC
    Alternatively, yet still using the idea of discarding part of the output:
    my(undef, undef, @rest) = split/\n/;
    But, with a variable value for $index, I'd rather go the splice route.

      Yeah, I thought of that one, but ultimately didn't use it because, as you mentioned, it doesn't work well with an arbitrary starting index.

      You could do something like this:

      my $str = "discard\ndiscard\nkeep1\nkeep2"; my $index = 2; my @arr = grep {$index-- <= 0} split "\n", $str;


      When's the last time you used duct tape on a duct? --Larry Wall

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1006827]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (8)
As of 2014-12-28 01:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls