use strict; use warnings; use List::Util qw(sum); my @times = qw(5:21 8:01 5:37 7:19 5:46 7:44 6:43 7:17 8:02 6:50 7:54 8:44); # @times are minutes and seconds. my @times_in_seconds; for my $time (@times) { my @individual_time = split(':',$time); my $seconds = ($individual_time[0] * 60) + $individual_time[1]; push @times_in_seconds,$seconds; } my $total_time_in_seconds = sum(@times_in_seconds); my $total_time_in_minutes = $total_time_in_seconds/60; my $total_time_in_hours = $total_time_in_minutes/60; #### use Date::Manip; my $t = Date::Manip::Delta->new; for (@times) { $t = $t->calc($t->new_delta($_)); } print $t->printf("%hyh:%02mmm:%02sss\n");