sub query { my ($str,@argv) = @_; my $answer; while (1) { print "$str ", $argv[0] ? "[$argv[0]]: " : ": "; chomp($answer = ); last unless @argv; last if grep $answer =~ /^\Q$_\E$/i, @argv; } return $answer; } #### last if grep $answer eq $_, @argv; #### sub query2 { my ($str,@argv) = @_; my $answer; while (1) { print "$str ", $argv[0] ? "[$argv[0]]: " : ": "; chomp($answer = ); return $answer if !@argv or grep lc($answer) eq lc($_), @argv; return $argv[0] unless $answer; } } #### $answer = $default if ($answer eq ""); # with this instead $answer ||= $default;