use strict; use warnings; my %toWord = ( "1" => "one", "2" => "two", "3" => "three", "4" => "four", "5" => "five", "6" => "six", "7" => "seven", "8" => "eight", "9" => "nine" ); print <); if ($value !~ /^([1-9]|done)$/) { print "I don't understand '$value'\n"; return; } return $value if $value =~ /^done$/ || $value <= $last; print "$toWord{$value} is not in the range one to $toWord{$last}.\n"; return; }