#!/usr/bin/perl $num{'15'}=1; $num{'20'}=2; $num{'25'}=3; $num{'30'}=4; $x=shift; # take value from @ARGV print value_sought( $x ), $/; sub value_sought { my $x = shift; # take value from @_ foreach my $k ( sort { $a <=> $b } keys %num ) { return $num{$k} if ( $x < $k ); } return "$x is larger than available num keys"; }