繁体   English   中英

为什么这行Perl本身只包含一个变量?

[英]Why does this line of Perl contain only a variable by itself?

我更喜欢perl,但是我对我在一个模块子程序中看到的一条线路有疑问。

my $var = 1;
....
....
....
....
$var;

抛出我的只是看到$var本身就在一条线上。 这只是回归1的迂回方式吗?

非常感谢!

在perl中,块的值是块中最后一个表达式的值。 这只是return $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块返回一个值的表面外观,尽管严格来说,它们没有。

引用perldoc -f return的最后一行:

在没有显式return的情况下,子例程,eval或do FILE会自动返回最后一个表达式的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM