我正在运行两个大型日志文件,我想比较时间戳.
我已经编写了一个Perl脚本来查找匹配的日志语句,但我需要找到时间戳的差异.
例如,15:31:19.430888减去15:31:19.427763
在Perl中处理时间有什么好的结构吗?如果我能避免的话,我不想自己处理时间数学.
您可以使用DateTime CPAN模块.
例如.
my $dt = DateTime->new( year => 2009, hour => 15, minute => 31, second => 19, nanosecond => 430888 ); my $dt2 = DateTime->new( year => 2009, hour => 15, minute => 31, second => 19, nanosecond => 427763 ); my $duration = $dt - $dt2;
它将为您提供DateTime :: Duration对象以从中检索结果.
DateTime是最好的,但只有当你做任何涉及减法的日期数学时,你才记得使用subtract_datetime_absolute方法而不是重载减号运算符.这是从两个日期时间中获得"秒表持续时间"的唯一方法,只有秒表持续时间对我所做的日期算术有用.DateTime :: Duration界面令人困惑和误导,特别是当你认为你有一个秒表持续时间而你没有.
人们很早就提到了这种情况会有多么混乱,但它从来没有得到纠正.
Time :: Piece模块是一个很好的选择.我不得不说整体它没有DateTime那么有用,但它绝对避免了这种混乱.我更喜欢DateTime,但只是勉强.