use DateTime::Duration; my $time1 = '11:30:25'; my $time2 = '12:45:40'; my ( $h1,$m1,$s1 ) = split /:/, $time1; my ( $h2,$m2,$s2 ) = split /:/, $time2; my $d1 = DateTime::Duration->new(hours => $h1, minutes => $m1, seconds => $s1); my $d2 = DateTime::Duration->new(hours => $h2, minutes => $m2, seconds => $s2); my $diff = $d2 - $d1; print +join ':',$diff->in_units('hours','minutes','seconds');