我更喜欢perl,但是我对我在一个模块子程序中看到的一条线路有疑问.
my $var = 1; .... .... .... .... $var;
抛出我的只是看到$var本身就在一条线上.这只是回归1的迂回方式吗?
非常感谢!
简
解决方法
在perl中,块的值是块中最后一个表达式的值.这只是返回$var的简写.
编辑:纯粹主义者指出,这些块通常不会返回值(例如,他们在Scala中执行),因此您无法编写:
my $x = if (cond) { 7 } else { 8 }; # wrong!
子例程,eval或do FILE的隐式返回值是最后计算的表达式.最后一个表达式可以在一个块内,但是:
sub f { my $cond = shift; if ($cond) { 7 } else { 8 } # successfully returns 7 or 8 from f() }
if / else块返回一个值的表面外观,尽管严格来说,它们没有.