http://www.perlmonks.org?node_id=83991


in reply to Closest-value-in-list Golf!

I disagree with tilly that using sort() is the natural solution. I think this is the natural solution:
sub closest { $n=pop;$c=pop;abs$n-$_<abs$n-$c?$c=$_:0for@_;$c }
This is O(n) rather than O(n*log n). Of course, at 47 characters it is, unfortunately, a longer solution. Oh well!