При использовании модуля (например SMTP) выдаёт: Can't call method "mail" on an undefined variable хотя переменная уже определена. (Модули типа localhost работают)
Конечно без твоего скрипта ничего не ясно, но посмотрев
в свой хрустальный шар рискну предположить следующее:
Ты делаешь:
use Net::SMTP;
my $smtp = Net::SMTP->new('some_mailhost');
$smtp->mail('user@example.com');
При этом ты _не_ проверяешь, успешно ли конструктор Net::SMTP->new()
создал объект. Если конструктор не получился, то $smtp будет
иметь значение undef и вызов $smtp->mail() даст именно это
сообщение - Can't call method "mail" on an undefined value.
Так что вперед проверять $smtp (как впрочем и результаты всех
остальных вызовов).
понял, надо читать perldoc Net::SMTP...
Есть работающий скрипт, рассылает sms-ки:
#!/usr/bin/perl
use MIME::Lite;
$msg = MIME::Lite->new(
From =>"Gamma!<$email>",
To =>"$emls5, $emls4, $emls2, $emls1, $emls6",
Subject =>"IPN triangulation",
Data =>qq{"$xxx1 YA POSHLA GUЛЯТЬ"}
);
$msg->send if $ms=~m!GCN IPN triangulation!is;