我不确定自己犯了什么错误,但我刚刚将!=
更改为#!/usr/bin/perl
my $guess = 1;
do {
$guess = <STDIN>;
} while ( $guess != 12 ) ; # it doesn't work if i replace != with ne
say "you guessed ", $guess;
并且有效。
这是一个简单的程序,让用户猜出一个数字,直到达到目标数字。
<input type="text" onfocusout="myFunction()">
答案 0 :(得分:13)
Perl的ne
是字符串不等于运算符,因此$guess
和12
被视为字符串。
通过<>
获得的字符串在末尾包含换行符,因此它不等于字符串'12'
。
!=
是数字不等于运算符,因此两个操作数都被视为数字。在这种情况下,Perl会在进行转换时忽略任何尾随的非数字字符,因此会忽略换行符,并将字符串12<newline>
视为数字12
。
在比较之前,您是chomp
获得的值,ne
运算符也可以。