my @array = ('3','4','71','1', '-598', '-100203'); print reduce{ $a = $b if $array[$b] >=0 and $array[$b] < $array[$a]; $a } 0 .. $#array;; 3 #### print reduce{ $array[$b] >=0 && $array[$b] < $array[$a] ? $b : $a } 0 .. $#array;