为什么’<'和'lt'运算符在Perl中返回不同的结果?

前端之家收集整理的这篇文章主要介绍了为什么’<'和'lt'运算符在Perl中返回不同的结果?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是在学习Perl的比较运算符.我尝试了以下代码: –

$foo=291;
$bar=30;

if ($foo < $bar) { 
        print "$foo is less than $bar (first)\n"; 
}

if ($foo lt $bar) { 
        print "$foo is less than $bar (second)\n"; 
}

输出291小于30(秒).这是否意味着lt运算符总是将变量转换为字符串然后进行比较? Perl使lt运算符的行为与<运算符的不同之处在于什么?操作符? 谢谢,

解决方法

你的猜测是正确的.像lt这样的字母运算符将变量比作字符串,而符号表示像<将它们比作数字.您可以阅读 perlop man page获取更多详细信息.

理由是Perl中的标量没有输入,所以没有你告诉它Perl不会知道如何比较两个变量.如果它确实猜到了那么它有时会出错,这会导致不得不做’$a< ''$b强制字符串比较,这可能比lt更糟糕. 也就是说这是一个可怕的陷阱,它可能会让Perl的每个人都抓到新的东西,并且在使用较少的post-modern language后一段时间回到Perl时仍然会抓住我.

猜你在找的Perl相关文章