sub nn{my$x=pop;(sort{$b<=>$a}map{abs($_-$x)}@_)[0,1]} #### sub nn{my$x=pop; (map$_->[0],sort{$a->[1]<=>$b->[1]}map[$_,abs$_-$x],@_)[0,1]} # or sub nn2{my$x=pop; my@d=map abs$_-$x,@_;@_[(sort{$d[$a]<=>$d[$b]}0..$#_)[0,1]]}