<div class="gmail_quote">2010/1/29 Dmitry E. Oboukhov <span dir="ltr"><<a href="mailto:unera@debian.org">unera@debian.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
MA> можно использовать "плохой" goto ;)<br>
<br>
MA> perl -E 'sub foo { eval "sleep 10" } { local $SIG{ALRM} = sub { goto EXIT; };<br>
MA> alarm 1; foo(); EXIT: alarm 0; say "exited" }'<br>
<br>
Урраа!! заработало!<br>
<br>
написал конструкцию:<br>
<br>
for (my $i = 0; caller $i; $i++) {<br>
printf "\t %s %s %s %s()\n", caller $i;<br>
}<br>
<br>
в функцию SIGALRM и затем сделал goto внутрь основной функции, затем<br>
такую же конструкцию после метки.<br>
<br>
в итоге первый вывод показывает стек из 10 элементов, а после метки из<br>
трех!<br></blockquote><div><br></div><div>Вообще-то у goto задокументирована возможность выхода из сабов. А goto &sub -- это вообще не goto, поэтому с ним тут глюки :)</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
так что "плохой гото" не такой уж и плохой!<br>
<br>
спасибо большое!<br>
<font color="#888888">--<br>
... mpd playing: Manowar - 01 Achilles, Agony And Ecstasy In Eight Parts<br>
</font><div><div></div><div class="h5"><br>
. ''`. Dmitry E. Oboukhov<br>
: :’ : email: <a href="mailto:unera@debian.org">unera@debian.org</a> jabber://<a href="mailto:UNera@uvw.ru">UNera@uvw.ru</a><br>
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21<br>
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537<br>
</div></div><br>-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.10 (GNU/Linux)<br>
<br>
iEYEAREDAAYFAkti6yIACgkQq4wAz/jiZTe91QCfRP1/5snP10qj01wiKbqghEt+<br>
tI8AmgIqRra2Ntk5jg+nkAcNRiLhVy6E<br>
=v0xq<br>
-----END PGP SIGNATURE-----<br>
<br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br>