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

Re: List::MoreUtils before, after and ... between?

by moritz (Cardinal)
on Feb 21, 2012 at 15:00 UTC ( #955327=note: print w/replies, xml ) Need Help??


in reply to List::MoreUtils before, after and ... between?

If you are sure that both regexes will be found, you can write something like this:

use List::MoreUtils qw/first_index last_index/; use 5.010; use strict; use warnings; my @a = qw<eval DBIC::3 DBIC::2 DBIC::1 MyApp::3 MyApp::2 MyApp::1 Dan +cer::3 Dancer::2 Dancer::1>; my $from = last_index { /DBIC/ } @a; my $to = first_index { /Dancer/ } @a; say for @a[$from + 1..$to - 1];

If one or both regexes might not match, you'd need to special-case undefined $from and $to.

Replies are listed 'Best First'.
Re^2: List::MoreUtils before, after and ... between?
by Boldra (Deacon) on Feb 22, 2012 at 09:13 UTC

    This looks like the most readable to me, thanks Moritz!

    I'm surprised you didn't post a Perl 6 version too ... I love those!



    - Boldra

      I just didn't think of coming up with a Perl 6 solution, and even now I don't see a particularly elegant and readable way.

      So I've just ported toolic's solution to Perl 6, making the returned list of found values lazy:

      my @a = <eval DBIC::3 DBIC::2 DBIC::1 MyApp::3 MyApp::2 MyApp::1 Dance +r::3 Dancer::2 Dancer::1>; my @filtered := gather { my $flag = 0; for @a { last if /Dancer/; $flag = 1 if /DBIC/; $flag = 2 if $flag && !/DBIC/; take $_ if $flag == 2; } } .say for @filtered;

      (Tested with current Niecza)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://955327]
help
Chatterbox?
[marto]: at times mine surprise me with this behavior :)
[Corion]: I mean, in a way it would be nicer+easier if they always where that obedient, but it's comforting to see that they are when it matters, at least for now ;)

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (4)
As of 2016-12-08 09:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (138 votes). Check out past polls.