my $dist = ($start - $end + 1) % $max_length; #### my $dist = dist($start, $end); sub dist { my $start = shift // die; my $end = shift // die; if ( $end >= $start ) { # simple range return $end - $start + 1; } # warpped range return $max_length - $start + 1 + $end; }