use strict; use warnings; use DateTime::Duration; my $duration = DateTime::Duration->new(); while(){ chomp; my ($hour, $minute, $second); my @time = split(':',$_); if(scalar @time == 3){ ($hour, $minute, $second) = @time; $duration->add(hours=>$hour, minutes=>$minute, seconds=>$second); }elsif(scalar @time == 2){ $hour =0; ($minute, $second) = @time; $duration->add(hours=>$hour, minutes=>$minute, seconds=>$second); } } print "Total Time: ", join(':',$duration->in_units('hours', 'minutes','seconds')),$/; __DATA__ 5:43:05 01:18 11:25 36:31 17:14 20:14 07:55 06:50 00:40 23:33 1:18:02 2:55:13