【发布时间】:2017-09-10 22:23:55
【问题描述】:
我不确定比较的输出是什么。例如,考虑
$rr = 1>2;
$qq = 2>1;
print $rr; #nothing printed
print $qq; #1 printed
$rr 是空字符串吗?这种行为是否记录在某处?或者如何确定?
我在 Schwartz 等人的 Learning Perl 中寻找答案,但无法立即解决。
【问题讨论】:
-
像您的示例这样比较的结果/值是布尔值,通常您直接在例如一个
if(...)来控制程序流程。您也可以将结果存储在标量变量中,就像您所做的那样,然后执行if($rr)。打印布尔值是最易读的if($rr) {print "True"} else {print "False"}。请提供更多关于您想要实现的目标的背景信息。 -
@Yunnosch 感谢您的评论。但是,它并没有真正回答我关于标量变量包含什么的问题。如您所知,Perl 中没有“布尔”类型。众所周知,许多数字和字符串的计算结果为假,但有人知道 $rr 中究竟存储了什么吗?它是否依赖于实现?
-
我知道 Perl 中没有布尔类型,也不想这么说。诚然,我的“Printing boolean ...”可以这样阅读,但 if 是“可视化此类布尔结果 ...”的缩写。 “比较的输出”仍然是布尔值,即布尔逻辑的一部分。它们按照良好答案中的描述存储的事实是我在这里学到的。我评论而不是回答,因为我很清楚,我不能回答具体的“它是如何存储的”问题。感谢您的提问。
标签: perl