使用 Time::Piece 和 Apache::Log::Parser

Using Time::Piece with Apache::Log::Parser

我正在使用 Apache::Log::Parser 来解析 Apache 日志文件。

我使用以下代码从日志文件中提取了日期。

my $parser = Apache::Log::Parser->new(fast=>1);
my $log = $parser->parse($data);
$t = $log->{date};

现在,我尝试使用 Time::Piece 来解析日期,但我做不到。

print "$t->day_of_month";

但是,它不起作用。如何使用Time::Piece解析日期?

您不能在字符串内插的对象上调用方法。它可能会输出这样的东西:

Sat Feb 18 12:44:47 2017->day_of_month

去掉双引号""调用方法。

print $t->day_of_month;

现在输出是:

18

请注意,如果日志中有纪元值,则需要使用 localtimegmtime 创建一个 Time::Piece 对象,如果日期是某种时间戳。​​