基本上,我想计算包含单词Out的行数。
my $lc1 = 0;
open my $file, "<", "LNP_Define.cfg" or die($!);
#return [ grep m|Out|, <$file> ]; (I tried something with return to but also failed)
#$lc1++ while <$file>;
#while <$file> {$lc1++ if (the idea of the if statement is to count lines if it contains Out)
close $file;
print $lc1, "n";
命令行可能也是您的潜在选择:
perl -ne '$lc1++ if /Out/; END { print "$lc1n"; } ' LNP_Define.cfg
-n假设while循环用于END之前的所有代码
-e要求代码被"包围。
只有当以下if语句为true时,$lc1++才会计数。
if语句每行运行一次,查找"Out"。
END{}语句用于在while循环结束后进行处理。这是你可以打印计数的地方。
或者不使用命令行:
my $lc1;
while ( readline ) {
$lc1++ if /Out/;
}
print "$lc1n";
然后在命令行上运行:
$ perl count.pl LNP_Define.cfg
使用index
:
0 <= index $_, 'Out' and $lc1++ while <$file>;