0

基本上我想计算包含单词 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";
4

2 回答 2

1

命令行也可能是您的潜在选择:

perl -ne '$lc1++ if /Out/; END { print "$lc1\n"; } ' LNP_Define.cfg

-n假定END之前的所有代码都有一个while循环。-e需要被' '包围的 代码。

仅当以下 if 语句为真时,$lc1++ 才会计数

if语句每行运行一次,寻找“ Out ”。

END { }语句用于在 while 循环结束后进行处理。在这里您可以打印计数。

或者没有命令行:

my $lc1;
while ( readline ) {
    $lc1++ if /Out/; 
}    
print "$lc1\n";

然后在命令行运行:

$ perl count.pl LNP_Define.cfg
于 2013-07-18T17:55:46.753 回答
0

使用index

0 <= index $_, 'Out' and $lc1++ while <$file>;
于 2013-07-17T07:36:46.320 回答