Анонимные функции


# Специального типа для лямбда-функций нет,
# фактически это ссылки на анонимные функции

sub getf {
    return sub {
        print "a";
    }
}
$f = getf();
&$f();

$f = "getf";
$x = &$f();
&$x();

# Более правильно:
$f = &getf;
$x = $f->();
&$x();

Можно также перехватывать вызовы несуществующих функций:

sub AUTOLOAD {
    use vars qw($AUTOLOAD);
    my $color = $AUTOLOAD;
}