2013-06-07 19 views
9
sub f { 
    # some code here 
    () 
} 

このPerlサブルーチンの意味は何ですか?()はPerlサブルーチンの終わりに何を意味しますか?

+6

戻り空のリスト:

はたとえば、次の例は、単一の小文字の "a" を出力します。 –

+0

http://www.tutorialsp.com/jp/perl/perl_subroutines.htm - 戻り値のセクションを参照してください。 –

+0

潜在的な混乱は、通常、1行よりも長いサブルーチンに明示的な 'return'文を含めることは良い考えです。 – plusplus

答えて

16

サブの最後の式が戻り値になります。これにより、(前のreturnステートメントがないと仮定して)サブが空のリストを返します(前のコード行にあったものではなく)。

1

OK ...そう、それはおそらく病的であるが、これ Perlの私たちは、「いくつかのコードここで#」の実際のテキストに応じて、

...の話をしているが、それはおそらく作り出すことができます逆参照されたCODE参照。この場合、括弧はCODEが引数なしで呼び出され、そのコードの戻り値は `f 'の戻り値になります。

sub f { 
     &{sub { return $_[0] }} 
     (@_) 
    } 

    print f(qw(a b c d e f)), "\n"; 
+0

私はそれが好きです。それは私が思った最初の事実でした。 =) –

+0

全く病理学的ではありません。これは、簡単に、またはこれとは別の方法で 'return;'と書くことができます。文脈なしで知ることはできません。 – darch

関連する問題