【发布时间】:2012-02-14 12:34:26
【问题描述】:
我在 Perl 5.8 上,需要分配一个默认值。我最终这样做了:
if ($model->test) {
$review = "1"
} else {
$review = ''
}
$model->test 的值将是 "1" 或未定义。如果$model->test 中有内容,则将$review 设置为"1",否则将其设置为等于''。
因为它不是 Perl 5.10,所以我不能使用新的时髦的定义或运算符。我的第一反应是像这样使用三元运算符...
defined($model->test) ? $review = "1" : $review = '';
但这也没用。
有没有人知道如何更有效地分配这个? 珍妮
【问题讨论】:
-
你真的应该把它设置为
!1而不是''。它们都具有相同的字符串表示形式 ('')。唯一的区别是''会在您尝试将其用作数字时发出警告,而!1不会。 (假设你总是在每段 Perl 代码的顶部有use warnings;,就像你应该的那样。)
标签: perl variables ternary-operator