- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
eval {
my $from = $class->get_env_sender($message);
$smtp->mail($from)
|| croak("Email::Send::Gmail: error sending 'from' $from");
my @to = $class->get_env_recipients($message);
my @ok = $smtp->to( @to, { SkipBad => 1 } )
|| croak("Email::Send::Gmail: error sending 'to' @to");
if ( @to != @ok ) {
my %to;
@to{@to} = (1) x @to;
delete @to{@ok};
@bad = keys %to;
}
croak("Email::Send::Gmail: no valid recipients") if @bad == @to;
};
Думаю понятно, какой это модуль с CPAN. Убило незнание приоритетов, в результате чего "|| croak" всегда возвращало в @ok число вместо результата выполнения $smtp->to
- че тут за херня?
- это ж перл
- понятно...
Убивает незнание того, что для || результат return; и return 0; НЕ одно и тоже :)
Вот иллюстрация, на случай, если я не так понял: http://ideone.com/kW6BdH
P.S. Использовать || можно везде, где не собираемся возвращать список, либо делаем развертку через [defined] wantarray.
это не незнание приоритетов - кто-то очепятолся и написал `||` вместо `or`.
но код от исправления этого имо сильно лучше не станет.
fixed
Сегодня, в завтрашний день, программировать на Perl могут не только лишь все, мало кто может это делать.
Сегодня нашел http://rghost.ru/58060348
Креатив зачётный, да.
На meta.ua есть текстовая версия: http://forum.meta.ua/topic/t/186713.html