use Sort::Key::Top qw(nkeytop rnkeytop); my @data = ( 100, -2, 5, 12, 1, 1, 6786, ...); my @min_ix_n = nkeytop { @data[$_] } $n => 0..$#data; my @max_ix_n = rnkeytop { @data[$_] } $n => 0..$#data;