perl while循环中eq运算符的意外行为。而循环不会停止
而下面的循环在标量perl while循环中eq运算符的意外行为。而循环不会停止,perl,Perl,而下面的循环在标量$quit明显不等于“j”后不会停止。 为什么它不会停止 #!/usr/bin/perl -w use strict; my $quit = 'j'; while ($quit eq 'j') { print "Enter whatever value you want and I bet I still continue.\n"; chomp (my $quit = <STDIN>); print "quit equals: $qui
$quit
明显不等于“j”后不会停止。
为什么它不会停止
#!/usr/bin/perl -w
use strict;
my $quit = 'j';
while ($quit eq 'j') {
print "Enter whatever value you want and I bet I still continue.\n";
chomp (my $quit = <STDIN>);
print "quit equals: $quit\n";
}
#/usr/bin/perl-w
严格使用;
我的$quit='j';
而($quit eq'j'){
打印“输入您想要的任何值,我打赌我仍将继续。\n”;
chomp(我的$quit=);
打印“退出等于:$quit\n”;
}
在循环中重新定义$quit
:chomp(my$quit=)代码>删除此行中的my
#!/usr/bin/perl -w
use strict;
my $quit = 'j';
while ($quit eq 'j') {
print "Enter whatever value you want and I bet I still continue.\n";
chomp ($quit = <STDIN>);
print "quit equals: $quit\n";
}
#/usr/bin/perl-w
严格使用;
我的$quit='j';
而($quit eq'j'){
打印“输入您想要的任何值,我打赌我仍将继续。\n”;
chomp($quit=);
打印“退出等于:$quit\n”;
}
在循环中,您正在使用my
关键字创建一个新的$quit
变量:
chomp (my $quit = <STDIN>);
chomp(my$quit=);
实际上,您希望分配给现有变量:
chomp($quit = <STDIN>);
chomp($quit=);
请注意,Perl linting程序(如)可能会提醒您此问题:
在词法作用域中重用变量名:$quit在第9行第12列。发明唯一的变量名。(严重程度:3)
因为您在while循环中定义了一个新变量$quit。
这就是你想要的:
chomp ($quit = <STDIN>);
chomp($quit=);
所以,没有“我的”