是否可以将外部文件行存储为标量变量,并在PERL中以某种条件循环?
下面的代码运行良好,并打印出包含单词“Street”的行。我想知道是否有另一种方法可以不使用特殊变量$\。 例如,将每一行放入增量标量变量,并针对相同的条件循环每一行。我是perl的新手,因此听起来可能很愚蠢,很抱歉给您添麻烦。 非常感谢您的建议,谢谢是否可以将外部文件行存储为标量变量,并在PERL中以某种条件循环?,perl,Perl,下面的代码运行良好,并打印出包含单词“Street”的行。我想知道是否有另一种方法可以不使用特殊变量$\。 例如,将每一行放入增量标量变量,并针对相同的条件循环每一行。我是perl的新手,因此听起来可能很愚蠢,很抱歉给您添麻烦。 非常感谢您的建议,谢谢 use strict; use warnings; use utf8; open(fh1,"sample.file"); while(<fh1>){ print if /Street/ ; } close fh1; 使用
use strict;
use warnings;
use utf8;
open(fh1,"sample.file");
while(<fh1>){
print if /Street/ ;
}
close fh1;
使用严格;
使用警告;
使用utf8;
打开(fh1,“sample.file”);
while(){
打印if/Street/;
}
关闭fh1;
如果您想避免使用$,可以使用while(my$line=)
,尽管我无法想象您为什么要这样做
如果要将其读入数组
@array = <$fh1>;
对于一个大文件,将整个文件读入一个数组将耗费时间和内存,而不是一次只消耗一行输入。您所说的增量标量变量
到底是什么意思?一个数组?假设我放置@list=,然后我想用条件打印$list[0]到$list[$#list]。是的,这是一个数组。很好,非常感谢,我只是想知道基本上我来自另一个编程背景,我试图联系它是否可以用另一种方式来完成,我的大脑可以很容易地接受它。再次感谢您的及时回复。@pradeep6kumar使用ForEachThank可能更好。谢谢,我也在尝试更多的想法。
my @array = <fh1>;
for(my $i =0; $i<$#array; $i++){
print $array[$i] if $array[$i] =~ /Street/
}