' NE'没有在do-while循环中工作,而'!='作品

时间:2017-01-08 22:16:00

标签: perl do-while

我不确定自己犯了什么错误,但我刚刚将!=更改为#!/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()">

1 个答案:

答案 0 :(得分:13)

Perl的ne字符串不等于运算符,因此$guess12被视为字符串。

通过<>获得的字符串在末尾包含换行符,因此它不等于字符串'12'

!=数字不等于运算符,因此两个操作数都被视为数字。在这种情况下,Perl会在进行转换时忽略任何尾随的非数字字符,因此会忽略换行符,并将字符串12<newline>视为数字12

在比较之前,您是chomp获得的值,ne运算符也可以。