our @alias = @profit; my $maxprofit = pop @alias; foreach (@alias){ $maxprofit = $_ if $maxprofit < $_; } our $index = 0; ++$index until $profit[$index] == $maxprofit or $index > $#profit; #### use List::Util qw(max); my $maxprofit = max @profit; our $index = grep { $profit[$_] eq $maxprofit } 0..$#profit;