加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

为什么’<'和'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时仍然会抓住我.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读