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は' 'で囲まれたコードを想定してい ます。

$lc1++は、次の if ステートメントが true の場合にのみカウントされます。

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 に答える