use strict; use warnings; use List::Util qw(reduce); my @arr = qw(0 3 5 12 3 2 1);; my $maxi = reduce { $arr[$a] > $arr[$b] ? $a : $b } (0..@arr-1); print "maximum i = $maxi value=$arr[$maxi]\n"; # maximum i = 3 value=12