Обработка исключений на perl
не в ту рассылку, но может заодно кто и подскажет где есть русскоязычная
рассылка по perl. а сюда пишу потому как тут вроде народ должен быть
perl понимающий :)
итак,
только начал его изучать ну и надо перехватить die из некоторой
библиотечной функции
вычитал у Л.Уолла что это делается следующей конструкцией:
eval
{
бла-бла которое может кончиться die;
};
if ($@)
{
обработчик die;
}
ну и теперь возникает соблазн писать так:
sub foo
{
eval
{
if (&foo2)
{
return 0;
}
else
{
return $a+$b+$c;
}
};
if ($@)
{
разгребаемся с ошибкой если foo2 бросила die
return чего-то там;
}
return чего-то там;
}
так вот я столкнулся с тем, что данный код не рабочий, написал такой вот
тест:
dimka:[/home/dimka]$ cat test.pl
#!/usr/bin/perl
sub testik
{
eval
{
return;
};
print "Privet\n";
}
&testik
dimka:[/home/dimka]$ perl test.pl
Privet
то есть return из под eval не работает
и как быть?
может я вообще в неправильном направлении пытаюсь идти или чего-то
недопонимаю?
спасибо
Reply to: