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


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

oops :
Warning: Use of "keys" without parens is ambiguous at C:\trash.pl line 8.
my answer is forthcoming, will update.
update you can shave off a few chars by changing
$h{shift@s}
to
$h{$s[0]}
. Don't get too complex, eh? UpdateTime's up!
sub e {sub n{abs($s-$b)};$s=pop;while($b=pop){if(&n<$d||!$d){$l=$b;$d= +&n}}$l}
for a total of 70 chars.

Replies are listed 'Best First'.
Re: (boo) Re: Closest-value-in-list Golf!
by suaveant (Parson) on May 29, 2001 at 18:30 UTC
    even shorter to not assign to @s at all, like my Update2
                    - Ant
      sub g {$n=pop;$h{abs$_-$n}=$_ for@_;$h{(sort{$a<=>$b}keys%h)[0]}}

      57 if you take out the ( ) on the abs

      "Argument is futile - you will be ignorralated!"

        oooooohh... ++
                        - Ant