Perl, абстрактная задачка
Jun. 14th, 2011 02:27 pmВ программе масса вот такого:
$smtp->mail($cfg->{from}) or die $smtp->message;
$smtp->message возвращает сообщение с переводом строки
die -- не выводит сообщение at ./script line 13. если в конце сообщения есть перевод строки
Как не переписывая модуль Net::SMTP, не заводя доп. функций, и не городя больших конструкций вокруг исходного функционала... сделать так чтобы at ... line таки выводился...
$smtp->mail($cfg->{from}) or die $smtp->message;
$smtp->message возвращает сообщение с переводом строки
die -- не выводит сообщение at ./script line 13. если в конце сообщения есть перевод строки
Как не переписывая модуль Net::SMTP, не заводя доп. функций, и не городя больших конструкций вокруг исходного функционала... сделать так чтобы at ... line таки выводился...
no subject
Date: 2011-06-14 10:46 am (UTC)no subject
Date: 2011-06-14 10:47 am (UTC)Оно возвращает отрезанный символ, а саму переменную меняет...
no subject
Date: 2011-06-14 10:52 am (UTC)Это поможет?
... Ложные чайки питаются чайными ложками ...
no subject
Date: 2011-06-14 11:03 am (UTC)Правда, это хак. Оно закладывается на то что \n в message ECТЬ
no subject
Date: 2011-06-14 11:15 am (UTC)$SIG{__DIE__} = sub { $_[0] =~ /((?: at \S+ line .*)?(?:\n+))?$/;
die join('::', caller) . "\n$`\n";
};
no subject
Date: 2011-06-14 11:23 am (UTC)А во-вторых -- я боюсь что это как раз пример write-only кода, которого я стараюсь избегать... ;-)
no subject
Date: 2011-06-14 11:24 am (UTC)Он с устраивающей меня вероятностью есть... Поскольку отладка внутренняя, то с малой вероятностью без последней буквы имеет право пожить...
no subject
Date: 2011-06-14 11:25 am (UTC)no subject
Date: 2011-06-14 11:29 am (UTC)Другие варианты: переопределение Net::SMTP::message, или пляски вокруг каждого die
no subject
Date: 2011-06-14 11:31 am (UTC)Переопределять метод внутри малого скрипта -- оверкилл...
no subject
Date: 2011-06-14 12:11 pm (UTC)1. die scalar(chomp($smtp->message), $smtp->message);
2. die $smtp->message =~ s/\n$//;
no subject
Date: 2011-06-16 06:39 pm (UTC)die $smtp->message."-";(или как там это записывается в перле) не угодил?