【发布时间】:2014-10-21 04:29:55
【问题描述】:
我正在读取日志文件的内容,对行执行正则表达式并将结果放入数组中,但由于某种原因没有输出。
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),唯一的内容是“这是一条测试线”。我知道正则表达式有效,因为我在提示符下尝试了它: -lne 'BEGIN{undef $/} while (/(.*?)/sg) {print $1} log.file > test.file
我做错了什么?
【问题讨论】: