in reply to Re: Lookup closest hash key
in thread Lookup closest hash key

Didn't you mean this, rather?
sub nearest{ my ( $dist, $href ) = @_; my ( $answer ) = ( sort { abs( $a - $dist ) <=> abs( $b - $dist ) +} keys %$href )[0]; return $href -> { $answer }; }
Otherwise this is a great trick, thanks!

Replies are listed 'Best First'.
Re^3: Lookup closest hash key
by choroba (Cardinal) on Oct 09, 2014 at 07:17 UTC
    my ($answer) creates list context, so the [0] at the end is not needed: it is a list assignment, the first element on the left gets the first element on the right. With the index at the end, you can drop the parentheses on the left, as it is a scalar assignment:
    my $answer = ( sort { abs( $a - $dist ) <=> abs( $b - $dist ) } keys % +$href )[0];
    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ