在Perl中,赋值运算符=
返回已分配的值。
$a = 5
意味着,据我所知:
将$a
设置为5
的值并返回5
。
现在:
如果我有这样的话:
$a = 5 + ($b = 2);
如果我假设赋值运算符没有返回2
,它会像这样读,不是吗:
$a = 5 + $b;
和Perl很高兴地说解决方案是7
。
但这不是它的工作方式。为什么不?我错过了什么吗?
为什么赋值运算符必须返回2
的值?即使没有返回数字2
,还没有足够的信息来进行添加吗?
对我而言,这听起来像是过于复杂的事情。
答案 0 :(得分:1)
赋值返回指定的值。虽然我认为这不应该用于编写像$a = 5 + ($b = 2);
这样的代码,但是当你有多个具有相同值的变量时它会很有用。
$blah = $more_blah = 0;
如果$more_blah
不会返回其值(在这种情况下为0
),则$blah
将无法获得正确的返回值。