MA> можно использовать "плохой" goto ;)

MA> perl -E 'sub foo { eval "sleep 10" } { local $SIG{ALRM} = sub { goto EXIT; 
};
MA> alarm 1; foo(); EXIT: alarm 0; say "exited" }'

Урраа!! заработало!

написал конструкцию:

    for (my $i = 0; caller $i; $i++) { 
        printf "\t %s %s %s %s()\n", caller $i; 
    } 

в функцию SIGALRM и затем сделал goto внутрь основной функции, затем
такую же конструкцию после метки.

в итоге первый вывод показывает стек из 10 элементов, а после метки из
трех!

так что "плохой гото" не такой уж и плохой!

спасибо большое!
-- 
... mpd playing: Manowar - 01 Achilles, Agony And Ecstasy In Eight Parts

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: [email protected] jabber://[email protected]
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Attachment: signature.asc
Description: Digital signature

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить