|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 04 Feb 2003 14:21:00 To : All Subject : died at (eval 1) line 1 -------------------------------------------------------------------------------- ==== 8< [test.pl] ==== #!/usr/bin/perl -w use strict; my $fr = eval 'sub { my $test; $test->method() }'; $fr->() ==== >8 [test.pl] ==== Can't call method "method" on an undefined value at (eval 1) line 1. В реальной жизни таких вот функций пара сотен. В момент выполнения eval я знаю, к какой сущности (объекту в базе данных) он относится. Хочется уметь получить в выводе die имя этой сущности вместо или в дополнение к (eval 1). Лучше вместо, поскольку мне совершенно не уперлось само (eval 1). Как? Поведения $SIG{__DIE__} я боюсь - судя по документации, в любой момент могут оторвать его вызов внутри eval, да и стекать их неудобно... Вешать проверку на $test до вызова метода не предлагать. Это сильно упрощенный пример, в реальной жизни все гораздо более хуже. А вот заменить eval на что-то более другое, но работающее в памяти - можно. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/144541f9fb915.html, оценка из 5, голосов 10
|