我正在讀取日誌文件的內容,在行上執行正則表達式並將結果放入數組中,但出於某種原因沒有輸出。Perl正則表達式在腳本中找不到模式
use strict;
use warnings;
my $LOGFILE = "log.file";
my $OUTFILE = "out.file";
open(LOG, "$LOGFILE") or die ("Could not open $LOGFILE: $!\n");
open(TMP, ">", "$OUTFILE") or die ("Could not open $OUTFILE: $!\n");
my @data = (<LOG> =~ /<messageBody>(.*?)<\/messageBody>/sg);
print TMP "This is a test line. \n";
foreach (@data){
print "@data\n";
print "\n=======================\n";
}
close TMP;
close LOG;
我的輸出是一個文件(out.file),唯一的內容是「這是一個測試線」。我知道這個正則表達式的工作原理,因爲我在提示符下試過它: -l''BEGIN {undef $ /} while(/(.*?)</messageBody>/sg){print $ 1} log.file> test.file
我在做什麼錯?
這是完美的。儘管如此,我從來沒有見過這樣的事情。謝謝! – cdbiggs 2014-10-20 20:47:26