【发布时间】:2015-11-10 21:12:20
【问题描述】:
让我们检查以下 perl 代码
if ($a lt 0.00 or $a gt 100.000)
{
print "a must be between 0 and 100 \n";
exit 1
}
exit 0
假设 a 等于 5。上面的代码会以失败状态退出,因为 a 不在 0 和 100 之间。
只需将lt 和gt 分别替换为它们所代表的实际运算符< 和>,即可产生预期的结果。将 100 替换为以 9 开头的数字也会产生预期的结果。
为什么 Perl 的比较运算符告诉我 5 不在 0 和 100 之间?
【问题讨论】:
-
编辑标题,因为“预期结果”只是您的期望,这是错误的。
-
您可能对
test命令(在shell 脚本中用作[...])感到困惑,该命令使用-gt和-lt进行数字比较。跨度> -
使用
$a也很糟糕。除了一般来说单字符变量名不好之外,它在perl中也有特定含义 - 它用于sort。
标签: perl