为什么’<'和'lt'运算符在Perl中返回不同的结果
发布时间:2020-12-16 06:11:16 所属栏目:大数据 来源:网络整理
导读:我只是在学习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的比较运算符.我尝试了以下代码: –
$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时仍然会抓住我. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |