- 论坛徽章:
- 0
|
- use strict;
- use warnings;
- use Benchmark;
- timethese( 1000000, {
- '1' => q!
- my $OK;
- my $wrong;
- while(<DATA>) {
- if(/Login incorrect/) {
- $wrong++;
- next;
- }
- $OK++ if /Login OK/;
- }!,
- '2' => q!
- my $OK;
- my $wrong;
- while(<DATA>) {
- index($_, 'Login incorrect') > 1 ? $wrong++ : index($_, 'Login OK') > 1 ? $OK++ : {};
- } !
- });
- __DATA__
- Thu Jan 15 10:02:10 2009 : Auth: Login incorrect: [ac/d] (from client)
- Thu Jan 15 10:02:12 2009 : Error: Username [ac] Reject Message
- Thu Jan 15 10:02:12 2009 : Auth: Login incorrect: [ac/b] (from client)
- Thu Jan 15 10:02:15 2009 : Auth: Login OK: [ab/c] (from client)
复制代码
楼主可以试试这段代码,在我的机器上跑(XP),index的方式比正则还是要快一些的
不好意思,之前DATA的数据有误,统计出来的$wong和$OK不对,现在换成楼主提供的数据
[ 本帖最后由 yashiro_lj 于 2009-6-16 11:14 编辑 ] |
|