hi,lists,
I have two perl scripts as following:
a.pl:
----
#!/usr/bin/perl
use strict;
my @logs = glob "~/logs/rcptstat/da2005_12_28/da.127.0.0.1.*";
foreach my $log (@logs) {
open (HD,$log) or die "$!";
while(<HD>){
if (
($_ =~ /â²á/o) ||
($_ =~ /Ã÷ÃÃ/o) ||
($_ =~ /Ã¥µ®¿ìÃÃ/) ||
($_ =~ /æø/o) ||
($_ =~ /̬̿/o) ||
($_ =~ /·¢»õ/o) ||
($_ =~ /±±¾©/o) ||
($_ =~ /ÃÃÃÃ/o) ||
($_ =~ /ÃÃ
â/o) ||
($_ =~ /Ããý/o) ||
($_ =~ /°ÃÃò/o) ||
($_ =~ /Ãâ·Ã/o) ) {
print $_;
}
}
close HD;
}
b.pl
----
#!/usr/bin/perl
use strict;
my $ref = sub { $_[0] =~ /â²á/o || $_[0] =~ /Ã÷ÃÃ/o || $_[0] =~
/Ã¥µ®¿ìÃÃ/o ||
$_[0] =~ /æø/o || $_[0] =~ /̬̿/o || $_[0] =~
/·¢»õ/o ||
$_[0] =~ /±±¾©/o || $_[0] =~ /ÃÃÃÃ/o || $_[0] =~
/ÃÃ
â/o ||
$_[0] =~ /Ããý/o || $_[0] =~ /°ÃÃò/o || $_[0] =~
/Ãâ·Ã/o };
my @logs = glob "~/logs/rcptstat/da2005_12_28/da.127.0.0.1.*";
foreach my $log (@logs) {
open (HD,$log) or die "$!";
while(<HD>){
print if $ref->($_);
}
close HD;
}
I run the 'time' command to get the running speed:
time perl a.pl > /dev/null
real 0m0.190s
user 0m0.181s
sys 0m0.008s
time perl b.pl > /dev/null
real 0m0.286s
user 0m0.278s
sys 0m0.007s
Why the a.pl is faster than b.pl? I think ever the resulte should be
opposite.Thanks.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>