use 5.012; use List::Util qw[min max]; for my $l (0..2) { for my $k (0..($l-1), ($l+1)..2) { my ($j1, $j2) = (min($l, $k), max($l, $k)); for my $j (0..($j1-1), ($j1+1)..($j2-1), ($j2+1)..2) { say "l = $l, k = $k, j = $j"; } } }