my @arr = ( 3, 4, 71, 1, -598, -100203 ); say for ( sort { $arr[ $a ] <=> $arr[ $b ] } grep { $arr[ $_ ] >= 0 } 0 .. $#arr )[ 0 ]; # okay. what's with the [ 0 ] ??????