Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re^2: upto match please, my one-lina!!

by NetWallah (Canon)
on Jun 09, 2006 at 04:39 UTC ( #554424=note: print w/replies, xml ) Need Help??

in reply to Re: upto match please, my one-lina!!
in thread upto match please, my one-lina!!

Loved the clever use of the return value from push, ioannis (++). The 'experimental' regex feature, however, got me thinking if it could be done with regular features only, so - here is the slightly ugly, but short:
perl -ne "m/foo/ and die @@ ; shift(@@) if push(@@,$_)>5" myfile.txt
I used "die" because (without eval), the "print @@, exit" combo printed nothing in my code (but it works as advertised in ioannis' code). Perhaps a more enlightened monk could explain why.

Update: This works too:

perl -Mstrict -ne "m/addr/ and eval {print @@; exit}; shift(@@) if pus +h(@@,$_)>5" myfile.txt
This code works on Win32. Use single-quotes for *nix.

     "For every complex problem, there is a simple answer ... and it is wrong." --H.L. Mencken

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://554424]
[< & >]: in democracies people get the politicians they deserve

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2017-12-15 18:39 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (442 votes). Check out past polls.