[Moscow.pm] Странности и неожиданности Perl

Denis Evdokimov evdokimov.denis на gmail.com
Вт Мар 4 05:10:05 PST 2008


Как выяснилось, Perl не даёт изменить название подпрограммы...
Выполняя следующий код, я ожидал
main::aaa
------------------------------
main::aaa
------------------------------
main::aaa

а на деле всё совсем не так

#!/usr/bin/perl
sub aaa
{
    print '' . (caller(0))[3] . "\n";
}
sub bbb
{
    print '' . (caller(0))[3] . "\n";
}


&aaa;
print '-' x 30, "\n";


*{'aaa'} = *{'bbb'};
&aaa;
print '-' x 30, "\n";


*main::aaa = sub
{
    print '' . (caller(0))[3] . "\n";
};
&aaa;


Подробная информация о списке рассылки Moscow-pm