gpt4 book ai didi

perl - 在 Perl 中输入无效输入时,如何要求用户重新输入?

转载 作者:行者123 更新时间:2023-12-01 06:54:35 26 4
gpt4 key购买 nike

我有一个 Perl 子程序,它要求用户输入。我在该子程序本身内部执行检查输入的输入是否为有效输入。

如果不是,我想再次调用子程序,让用户这次输入有效的输入。

我的子程序如下:

sub some_routine {    
print "Enter a number to select (1) Apple (2) Mango (3) grapes:"
$value=STDIN;
if($value =~ /[^1-3]/ ) {
print "The input is not valid!";
print "Do you want to continue selecting a fruit again (Y or N)?";
$choice = STDIN;
if( $choice eq "y") {
### I want to call the subroutine again to enter input ###
} else {
exit;
}
}
}

那么在此如何递归一个子程序呢?

最佳答案

要在 Perl 中递归调用子程序,只需从其自身调用子程序,就像在任何其他语言中一样:

sub factorial {
my $num = shift;
return 1 if $num < 2;
return $num * factorial($num - 1);
}

但是,您真的不想将递归用于“重复直到条件改变”的场景。
就是这样while循环用于
:
my $valid;
while (!$valid) {
print "Enter something: ";
my $data = <STDIN>;
$valid = validate($data);
print "Bzzt! Invalid - try again!\n" unless $valid;
}

关于perl - 在 Perl 中输入无效输入时,如何要求用户重新输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1490971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com