Как работают замыкания в Perl?

Новичок в Perl снова здесь, пытаясь понятьclosure в перл.

Так вот's пример кода, который я неТ понять:

sub make_saying  {
    my $salute = shift;
    my $newfunc = sub {
        my $target = shift;
        print "$salute, $target!\n";
    };
    return $newfunc;            # Return a closure
}
$f = make_saying("Howdy");      # Create a closure
$g = make_saying("Greetings");  # Create another closure
# Time passes...
$f->("world");
$g->("earthlings");

Итак, мои вопросы:

Если переменная назначена функции, является ли она автоматически ссылкой на эту функцию?В приведенном выше коде я могу написать$f = \make_saying("Howdy") вместо? И когда я могу использовать& потому что я пытался использовать это при передаче параметров (&$f("world")) но это нет работа.и, наконец, в этом коде выше, как он ** сделал словаworld а такжеearthlings добавить к словамhowdy а также .greetings

Примечание: я понимаю, что $ f в некоторой степени связан с функцией с параметромhowdy чтобы'мое понимание того, какworld получил добавленный. Что я не делаюЯ понимаю, что это вторая функция внутри. Как этот управляет своей магией. Извини, я правда нене знаю, как спросить это.

Ответы на вопрос(3)

Ваш ответ на вопрос