From: "Denham Eva" <[EMAIL PROTECTED]> > Are you just trying to report the ORA-XXX errors in reverse order? If > so, something like this should work: > > my @errs; > while (<SITELOG>) { > push @errs, $_ if /ORA-/; > } > print reverse @errs;
I wanted to ask why do you push the lines at the end and then reverse the array? my @errs; while (<SITELOG>) { unshift @errs, $_ if /ORA-/; } print @errs; But Benchmark says your way is actually quicker :-) #!perl use Benchmark; sub pushReverse { my @arr; for (1..10000) { push @arr, $_; } my @b = reverse @arr; } sub withUnshift { my @arr; for (1..10000) { unshift @arr, $_; } my @b = @arr; } timethese 10000, { pushReverse => \&pushReverse, withUnshift => \&withUnshift, } __END__ Benchmark: timing 10000 iterations of pushReverse, withUnshift... pushReverse: 80 wallclock secs (78.39 usr + 0.05 sys = 78.44 CPU) @ 127.49/s (n=10000) withUnshift: 85 wallclock secs (83.84 usr + 0.09 sys = 83.94 CPU) @ 119.14/s (n=10000) Jenda ===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz ===== When it comes to wine, women and song, wizards are allowed to get drunk and croon as much as they like. -- Terry Pratchett in Sourcery -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>