gpt4 book ai didi

regex - Perl 正则表达式没有像预期的那样跳出直到循环

转载 作者:行者123 更新时间:2023-12-04 08:57:21 25 4
gpt4 key购买 nike

当我打印正则表达式的结果时,我试图用来控制直到循环,它给了我我期望的 1 或 null。为什么下面的代码不起作用,但如果我取消注释第五行它工作正常?

print("Please enter 1, 2, 3 or 4 : ");
my $channelSelection = "";

until ($channelSelection =~ /^[1-4]$/) {
chomp(my $channelSelection = <STDIN>);
#last if ($channelSelection =~ /^[1-4]$/);
print ("Invalid choice ($channelSelection) please try again: ")
if ($channelSelection !~ /[1-4]/);
}

我确定这已在其他地方解决,但无法通过搜索找到它。将我指向正确的方向会很棒。

我通常会做类似的事情。
print("Please enter 1, 2, 3 or 4 : ");
my $channelSelection = "";
while (1) {
chomp(my $channelSelection = <STDIN>);
last if ($channelSelection =~ /^[1-4]$/);
print ("Invalid choice ($channelSelection) please try again: ") if ($channelSelection !~ /[1-4]/);
}

但我试图摆脱无限循环。

最佳答案

这里的问题是您在循环内重新声明 $channelSelection 但循环外保留旧值。从内循环中删除“我的”。

关于regex - Perl 正则表达式没有像预期的那样跳出直到循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/902254/

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