我使用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来解析日期?
答案 0 :(得分:3)
您无法在字符串插值内调用对象上的方法。它可能会输出如下内容:
Sat Feb 18 12:44:47 2017->day_of_month
删除双引号""
以调用方法。
print $t->day_of_month;
现在输出是:
18
请注意,如果日志中包含纪元值,则需要使用localtime
或gmtime
创建Time :: Piece对象;如果日期是某种类型,则需要使用strptime
时间戳。