perl – ‘ne’在do-while循环中不起作用,而’!=’起作用

前端之家收集整理的这篇文章主要介绍了perl – ‘ne’在do-while循环中不起作用,而’!=’起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不确定我犯的是什么错误,但我只是将ne改为!=并且它有效.

这是一个简单的程序,让用户猜出一个数字,直到他们达到目标数字.

#!/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;

解决方法

Perl的ne是字符串不等于运算符,因此$guess和12被视为字符串.

通过<>获得的字符串最后包含换行符,因此它不等于字符串’12’.

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

如果你在比较之前选择获得的值,那么ne运算符也可以工作.

猜你在找的Perl相关文章