我在使用正则表达式验证用户输入时遇到困难。我正在尝试获取用户输入并确保它在 1 到 99 之间。如果不是,那么它会调用相同的子例程,直到匹配验证条目。但是,即使输入在 1-99 之间,它也会继续调用子例程。
sub get_age
{
print "Age :";
@get_age = <STDIN>;
if (scalar @get_age !~ m/\d[1-99]/ ) #making sure age given is between 1 and 99
{
print "ERROR, invalid input\n";
&get_age; #this is callng the same sub it's in to re-run validating
}
push(@get_age, <STDIN>); #taking name from user and putting it in @get_name array
chomp(@get_age); #erasing newline from input
}