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
| [reply] [Watch: Dir/Any] [d/l] [select] |