以下代码正常工作并打印出包含“Street”字样的行。我想知道是否有其他方法可以在不使用特殊变量$ _的情况下进行相同操作。 例如,将每一行放入增量标量变量,并为相同条件循环每一行。我是perl的新手,因此它可能听起来很愚蠢,对于麻烦感到抱歉。 非常感谢任何建议,谢谢。
use strict;
use warnings;
use utf8;
open(fh1,"sample.file");
while(<fh1>){
print if /Street/ ;
}
close fh1;
答案 0 :(得分:2)
如果您想避免使用while(my $line = <fh1>)
,可以使用$_
,但我无法想象您为什么要这样做。
如果你想把它读成数组,
@array = <$fh1>;
然后,您可以访问$array[0]
... $array[N]
个别元素。
my @array = <fh1>;
for(my $i =0; $i<$#array; $i++){
print $array[$i] if $array[$i] =~ /Street/
}
对于大文件,将整个文件读入数组将耗费时间和内存,与一次消耗一行输入相比。