2013-11-02 120 views
0

我有一個格式爲h:mm:ss的時間數組列表。我想計算這個數組的平均時間。如何從數組列表中計算時間平均值

我試過下面的代碼,但是有一些包的問題。我成功安裝了持續時間包,但現在編譯器在Duration :: Parse包中拋出錯誤。

PS:我在Windows上使用Dwinperl作爲編輯器。

use Time::Duration::Parse qw(parse_duration); 
use Time::Duration qw(duration); 
use List::Util qw(sum); 
my $count = @time; 
my $sum = sum map {parse_duration($_) } @time; 
my $avg = $sum/$count; 

print duration($sum, 3), "--Total Time\n"; 
print duration($avg, 3), "--Avg Time\n"; 

這是我收到的錯誤消息。

Can't locate Time/Duration/Parse.pm in @INC (@INC contains: C:/Dwimperl/perl/sit 
e/lib C:/Dwimperl/perl/vendor/lib C:/Dwimperl/perl/lib .) at time.pl line 7. 
BEGIN failed--compilation aborted at time.pl line 7. 
+1

你似乎已經忘了給我們錯誤信息! – ikegami

+0

更新了錯誤評論 – kay

+1

要麼你沒有成功安裝Time :: Duration :: Parse,要麼你明確地將它的安裝指向非標準目錄(使用'PREFIX ='或者其他),並且你沒有告訴Perl看看到該目錄(使用'use lib'或env var'PERL5LIB')。 – ikegami

回答

1

看來perl找不到包Time::Duration::Parse列表@INC內安裝路徑

鍵入下面的終端命令檢查perl默認情況下可以找到你的模塊

perldoc -l Time::Duration::Parse 

如果上述命令沒有給您安裝所需模塊的位置,

  1. 確保你已經安裝了所需的模塊

  2. 嘗試添加下面一行到你的perl代碼添加模塊的自定義安裝路徑

    use lib '/path/to/module';