以下のようなテキストファイルの内容があります。
Starting log...
Sample at 10000000
Mode is set to 0
0007F43: CHANGE DETECTED at 290313 line 0 from 00 to 04
0007F46: Mismatched at 290316 line 0
0007F50: Matched occur at 290326 line 1
0007F53: Mismatched at 290336 line 2
0007F56: Matched occur at 290346 line 0
0007F60: Mismatched at 290356 line 2
0007F63: Matched occur at 290366 line 0
Saving log....
DONE!!!
「Mismatched」を含む行の値を取得するために、以下のように単純な perl プログラムを実行しています。
#!/usr/bin/perl
print "Starting perl script\n\n";
open (LOG,"dump.log");
while (<LOG>) {
next if !/Mismatched/;
/at\s+"([^"]+)"/;
print $1,"\n";
}
close(LOG);
print "DONE!!\n";
exit;
しかし、次のようなエラー メッセージが表示されます。コーディングの何が問題なのかを知ることができますか? chomp() に関連するものを見逃していますか?
Use of uninitialized value in print at test.pl line 9, <LOG> line 5.
Use of uninitialized value in print at test.pl line 9, <LOG> line 7.
Use of uninitialized value in print at test.pl line 9, <LOG> line 9.
DONE!!
そして..より単純なスクリプトを使用してキーワード「Mismatched」を検索した後、整数 (つまり 290316) を取得するための提案はありますか? 最初の値だけを取得したい..