是否可以将外部文件行存储为标量变量并在PERL中以某些条件循环它?

时间:2013-03-12 09:26:00

标签: perl

以下代码正常工作并打印出包含“Street”字样的行。我想知道是否有其他方法可以在不使用特殊变量$ _的情况下进行相同操作。 例如,将每一行放入增量标量变量,并为相同条件循环每一行。我是perl的新手,因此它可能听起来很愚蠢,对于麻烦感到抱歉。 非常感谢任何建议,谢谢。

use strict;
use warnings;
use utf8;

open(fh1,"sample.file");

while(<fh1>){
    print if /Street/ ;
}
close fh1;

1 个答案:

答案 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/
}

对于大文件,将整个文件读入数组将耗费时间和内存,与一次消耗一行输入相比。