On 15:39 Fri 29 Jan , Dmitry Karasik wrote: >> Вообще-то у goto задокументирована возможность выхода из сабов. А goto &sub >> -- это вообще не goto, поэтому с ним тут глюки :)
DK> более того, из нормальных сабов он это и делает - сам пользуюсь ;)
DK> а вот из обработчика сигнала - нет.
Эмм, как это нет? я набросал модульчик и у меня делает нормально: из
обработчика alarm обратно в функцию
my @res;
eval {
local $SIG{ALRM} = sub {
$alarmed = 1;
goto FOO_DONE;
};
alarm $timeout;
if ($wantarray) {
@res = eval { $code->(@args) };
} elsif (defined $wantarray) {
$res[0] = eval { $code->(@args) };
} else {
eval { $code->(@args) };
}
alarm 0;
die if $@;
};
FOO_DONE:
и вот тут мы уже полностью вышли и из обработчика сигнала и из функции
которую хотели прервать.
--
... mpd playing: Manowar - 08 Master Of The Wind
. ''`. 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
signature.asc
Description: Digital signature
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
