#!/usr/bin/perl -w use strict; my $answer = ask_yes_no ("Gimme a Yes or No!(Y/N)?"); print "answer = $answer\n"; sub ask_yes_no { my $prompt = shift; while ( (print $prompt), (my $answer = ) !~ /^\s*q(uit)?\s*$|^\s*abort\s*?/i ) { next if $answer =~ /^\s*$/; # re-prompt on blank line $answer =~ s/^\s*//; #no leading spaces $answer =~ s/\s*$//; #no trailing spaces $answer = uc $answer; return $answer if ($answer eq 'Y' or $answer eq 'N'); print "Illegal entry try again..!!\n"; } die "quit or abort was entered! **Abort Program!!**\n"; } __END__ Example: UI test run.... C:\TEMP>perl askyn.pl Gimme a Yes or No!(Y/N)?2345 Illegal entry try again..!! Gimme a Yes or No!(Y/N)?y answer = Y C:\TEMP>perl askyn.pl Gimme a Yes or No!(Y/N)?N answer = N C:\TEMP>perl askyn.pl Gimme a Yes or No!(Y/N)?a Illegal entry try again..!! Gimme a Yes or No!(Y/N)?ABORT quit or abort was entered! **Abort Program!!** C:\TEMP>perl askyn.pl Gimme a Yes or No!(Y/N)?Q quit or abort was entered! **Abort Program!!** C:\TEMP>perl askyn.pl Gimme a Yes or No!(Y/N)? Gimme a Yes or No!(Y/N)? Gimme a Yes or No!(Y/N)? Gimme a Yes or No!(Y/N)?