私はperlに入るほど好きですが、調べているモジュールのサブルーチンで見た行について質問がありました。
my $var = 1;
....
....
....
....
$var;
私を驚かせるのは、それだけ$var
で一列に並んでいるのを見ているだけです。それはただの回り道の帰り道1
ですか?
どうもありがとう!
ジェーン
私は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は、最後に評価された式の値を自動的に返します。