您不需要open
显式文件.
my $regex = qr/blah/;
while (<>) {
if (/$regex/) {
print;
exit;
}
}
print "Not found\n";
Run Code Online (Sandbox Code Playgroud)
由于你似乎关注性能,我让匹配并print
使用默认$_
提供的默认值<>
,这是一个稍微快一点的东西.在正常的生产代码中,
while (my $line = <>) {
if ($line =~ /$regex/) {
print $line;
exit;
}
}
Run Code Online (Sandbox Code Playgroud)
会优先考虑.
编辑: 这假定要检查的文件是在命令行上给出的,我刚刚注意到你没有说明在你的情况下适用.
使用grep时要注意的一件事:在最近的Linux发行版中,如果你的LANG环境变量定义了UTF-8类型(例如我的是LANG = en_GB.UTF-8)那么grep,sed,sort和可能是一堆其他文本处理实用程序运行速度大约慢10倍.如果您正在进行性能比较,请注意这一点.我现在将我的grep命令别名为:
LANG= LANGUAGE= /bin/grep
Run Code Online (Sandbox Code Playgroud)
编辑:实际上,它更像是慢100倍
归档时间: |
|
查看次数: |
4320 次 |
最近记录: |