我在下面有一个示例日志
user02|(1+08:12)
user01|(00:00)
user01|(08:55)
user01|(2+09:13)
user02|(2+10:31)
user01|(04:25)
user01|(07:59)
user01|(07:59)
user01|(08:45)
user01|(00:10)
user02|(09:11)
user01|(04:49)
user01|(-7:-59)
user02|(-1:-31)
我想为每个不同的用户添加所有时间: 输出应该是总时间格式天+小时:分钟: 样本输出:
user01 4+13:12
user02 2:09
我希望你们能提前帮我解决这个问题!
答案 0 :(得分:2)
由于我理解这是出于教育目的,我将给你一个部分解决方案:
#!/usr/bin/perl
use strict;
use warnings;
my @log = ( 'user02|(1+08:12)',
'user01|(00:00)',
'user01|(08:55)', ... # supposing you loaded your data into an array
my %hash = (); # using an empty hash
foreach my $line (@log) { # iteranting each line
$line =~ /^(user\d+)/; # searching for "userXXXX" pattern
my $user = $1; # assigning matched value to $user
# figure out how to act on $hash{ $user } :)
}
通用外观here了解如何使用 Date :: Calc ,然后将注意力集中在包含 Delta 的函数名称上。
我希望你能从这开始学习和理解新的东西。
不要忘记发布解决方案;)