use strict; use warnings; use feature 'say'; use List::Util qw/ min pairmap /; use List::MoreUtils qw/ slide /; say min slide { $b - $a } sort { $a <=> $b } map { $_, $_ + 60 * 24 } pairmap { 60 * $a + $b } map /(\d\d):(\d\d)/, @$_ for [ qw/ 00:00 23:55 20:00 /], [ qw/ 01:01 00:50 00:57 /], [ qw/ 10:10 09:30 09:00 09:55 /] ;