我正在读取日志文件的内容,在行上执行正则表达式并将结果放入数组中,但出于某种原因没有输出。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