Chas. Owens wrote:
On Fri, Feb 27, 2009 at 11:07, Gunnar Hjalmarsson <nore...@gunnar.cc> wrote:
Sarsamkar, Paryushan wrote:
I would like to accept some user inputs (using <STDIN>), but it might be
easier for a user if I can provide the default value, so that they just
have to press ENTER.
How can I do that? I've played around with <STDIN> but I cannot make it
work exactly as I'd like.
E.g.
Do you want to do the normal thing? [yes] :
print 'Do you want to do the normal thing? [yes] : ';
chomp( my $normal = <STDIN> );
$normal ||= 'yes';
snip
This only works if 0 (or any false value other than '') is not a valid response.
I agree; should better be:
$normal = 'yes' if $normal eq '';
Thanks for pointing it out.
Which takes us to the obvious step of validating the user input.
my $normal;
while (1) {
print 'Do you want to do the normal thing? [yes] : ';
chomp( $normal = <STDIN> );
$normal = 'yes' if $normal eq '';
last if grep { lc $normal eq $_ } 'yes', 'no';
print "\nERROR: Answer must be yes or no.\n\n";
}
--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/