use List::Util qw/ sum /; # calculate total number of seconds $seconds = sum map { my ($m,$s) = split /:/; $m*60 + $s } qw/ 01:45 60:00 45:25 /; # or your array with times $minutes = int($seconds / 60); # integral number of minutes $seconds = $seconds % 60; # remaining seconds $new_time = sprintf "%02d:%02d", $minutes, $seconds;