- 论坛徽章:
- 0
|
原帖由 ttcn 于 2009-10-20 12:26 发表
明白你所谓的低效在哪里了,
如果你再遍历LOG文件的每一样的时候再开循环遍历有效哈希Key是很慢的
不妨你先把有效哈希Key存在一个列表里面
当遍历LOG文件的时候,无论是否有效KEY都存在哈希表里
遍历LOG文件 ...
谢谢,我再尝试一下
是不是这样子
sub foo
{
my ( $login, $p, $uid, $gid, $gecos, $dir, $s );
my %HoH = ();
my $file = '/etc/passwd';
open( PASSWD, "< $file" ) or die "Can't open $file : $!";
while( <PASSWD> ) {
( $login, $p, $uid, $gid, $gecos, $dir, $s ) = split( ':' );
$HoH{ $login }{ 'uid' } = $uid;
$HoH{ $login }{ 'gid' } = $gid;
$HoH{ $login }{ 'dir' } = $dir;
}
close PASSWD;
return \%HoH;
} |
|