1

私はこの単純なステートメントで正確に何が処理されているかを理解しようとしています:

sub testReturn {
    return sub {
        my $val = shift;
        return $val;
    }
}

いつ

my $num = testReturn(1);
print $num;

が呼び出され、出力されます。

CODE(0x9c63b34)

私がそれを持っているようにしようとしているときは、単に1の値を返します。ありがとう。

4

1 に答える 1

7

関数は別の関数を匿名コード ブロックとして返します。次のように、そのコードを呼び出して、いくつかのことを行うことができます。

my $anonsub = testReturn(); # $anonsub is CODE object
my $num = &$anonsub(1);      # here this code is called
print $num;
于 2012-10-23T05:30:08.643 に答える