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>