Greetings,
Problem seems to be with your regex in the loop:
you only continue if the answer matches 0 or more whitespaces!
also since you chomp your input it wont match the newline character.
here is a fix
#!/usr/bin/perl
use autodie;
use strict;
use warnings;
my $messagetouser= "What is your favorite Color?";
my $ans = tryagain5 ( $messagetouser );
if ($ans)
{
print "$ans\n";
}
else
{
print "You didn't reply! Goodbye.\n";
exit;
}
#print $answer, "\n";
sub callandresponse{
my ($messagetouser)=@_;
print $messagetouser,"\n";
while(<STDIN>){
chomp $_;
return $_;
}
}
sub tryagain5 {
my($messagetouser)=@_;
my $ans = callandresponse ($messagetouser);
my $count=1;
while ($count < 5 && !($ans=~ /\A\s*\z/))
{ $count++;
$ans = callandresponse ($messagetouser);
}
if ($ans =~ /^\s*\n/)
{
return 0;
}
else
{ return $ans;}
}
Also, believe me using strict and warnings will save you a world of hurt!
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|