nataraj: (Default)
[personal profile] nataraj
В программе масса вот такого:

$smtp->mail($cfg->{from}) or die $smtp->message;

$smtp->message возвращает сообщение с переводом строки
die -- не выводит сообщение at ./script line 13. если в конце сообщения есть перевод строки

Как не переписывая модуль Net::SMTP, не заводя доп. функций, и не городя больших конструкций вокруг исходного функционала... сделать так чтобы at ... line таки выводился...

Date: 2011-06-14 10:46 am (UTC)
From: [identity profile] alexkuklin.livejournal.com
chomp($smtp->message)

Date: 2011-06-14 10:47 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
авотхуй...
Оно возвращает отрезанный символ, а саму переменную меняет...

Date: 2011-06-14 10:52 am (UTC)
From: [identity profile] slobin.livejournal.com
slobin@loreley:~/Pictures$ cat zz
#!/usr/bin/perl
use Carp;
croak "problem here\n";

slobin@loreley:~/Pictures$ ./zz
problem here
 at ./zz line 3

Это поможет?

... Ложные чайки питаются чайными ложками ...

Date: 2011-06-14 11:03 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
substr($smtp->message,0,-1)

Правда, это хак. Оно закладывается на то что \n в message ECТЬ

Date: 2011-06-14 11:15 am (UTC)
From: [identity profile] what-me.livejournal.com
Что-то вроде этого в начале скрипта

$SIG{__DIE__} = sub { $_[0] =~ /((?: at \S+ line .*)?(?:\n+))?$/;
die join('::', caller) . "\n$`\n";
};

Date: 2011-06-14 11:23 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Ну во-первых это таки дополнительная функция... не соответствует условиям задачи...

А во-вторых -- я боюсь что это как раз пример write-only кода, которого я стараюсь избегать... ;-)

Date: 2011-06-14 11:24 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
О! Тоже вариант...
Он с устраивающей меня вероятностью есть... Поскольку отладка внутренняя, то с малой вероятностью без последней буквы имеет право пожить...

Date: 2011-06-14 11:25 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Ага! есть!

Date: 2011-06-14 11:29 am (UTC)
From: [identity profile] what-me.livejournal.com
Ну, напишите не write-only. Смысл в применении обработчика сигнала DIE. Плюсы -- одним махом избавляемся от необходимости отслеживания "\n" при умирании

Другие варианты: переопределение Net::SMTP::message, или пляски вокруг каждого die

Date: 2011-06-14 11:31 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Ну я в результате сплясал вокруг каждого die по методу витуса...

Переопределять метод внутри малого скрипта -- оверкилл...

Date: 2011-06-14 12:11 pm (UTC)
From: [identity profile] blog.vnaum.com (from livejournal.com)
Два варианта ещё:
1. die scalar(chomp($smtp->message), $smtp->message);
2. die $smtp->message =~ s/\n$//;

Date: 2011-06-16 06:39 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Чем die $smtp->message."-"; (или как там это записывается в перле) не угодил?

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 21st, 2026 12:05 pm
Powered by Dreamwidth Studios