赋值运算符(=)和Perl中的返回值

时间:2014-05-06 10:17:26

标签: perl

在Perl中,赋值运算符=返回已分配的值。

$a = 5意味着,据我所知:

$a设置为5的值并返回5

现在:

如果我有这样的话:

$a = 5 + ($b = 2);

如果我假设赋值运算符没有返回2,它会像这样读,不是吗:

$a = 5 + $b;和Perl很高兴地说解决方案是7

但这不是它的工作方式。为什么不?我错过了什么吗?

为什么赋值运算符必须返回2的值?即使没有返回数字2,还没有足够的信息来进行添加吗?

对我而言,这听起来像是过于复杂的事情。

1 个答案:

答案 0 :(得分:1)

赋值返回指定的值。虽然我认为这不应该用于编写像$a = 5 + ($b = 2);这样的代码,但是当你有多个具有相同值的变量时它会很有用。

$blah = $more_blah = 0;

如果$more_blah不会返回其值(在这种情况下为0),则$blah将无法获得正确的返回值。