2014-01-28 54 views
-1

登錄下面我有總結了總人數的「天+小時:分鐘」的用戶在Perl

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 

我希望你們能幫助我提前解決這個謝謝!

+2

你有什麼試過?它是如何失敗的? Perl解決方案是絕對需求嗎? – tripleee

+0

它實際上是perl中的一個練習,我的爵士給了我一個提示,使用Data :: calc – Soncire

+3

那麼,這不是一個充滿了爲你做你的練習的人的頁面。你必須自己做,然後,如果你遇到任何具體問題,你可以尋求幫助。 – DeVadder

回答

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瞭解如何使用日期::計算器然後集中你的注意力放在功能的包含Delta的名稱

我希望你能從中學習和理解新東西。

不要忘了發佈解決方案;)

+0

非常感謝@菲利普·勞里亞 – Soncire