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

时间:2017-02-18 11:24:44

标签: apache perl parsing cpan

我使用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来解析日期?

1 个答案:

答案 0 :(得分:3)

您无法在字符串插值内调用对象上的方法。它可能会输出如下内容:

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

删除双引号""以调用方法。

print $t->day_of_month;

现在输出是:

18

请注意,如果日志中包含纪元值,则需要使用localtimegmtime创建Time :: Piece对象;如果日期是某种类型,则需要使用strptime时间戳。