![]() ![]() |
Интересные решения Perl. Вопросы и ответыВызов внешней программы из скрипта?В Perl существует возможность выполнить внешнюю программу несколькими способами: 1. system("perl /path/to/another/script") или system("chmod 0644 /some/file") 2. поместить вызов в обратные кавычки: my $cmd = 'ls -l'; my $result = `$cmd`; # переменная $result содержит выход команды, указанной в переменной $cmd 3. Открыть программу как конвейер. Типичный пример - отправка письма через sendmail my $sndMailPath = '/usr/sbin/sendmail'; my $from = 'alex@fanshop.ru'; my $to = 'some@host.tld'; my $subject = 'Just a test'; my $message = 'Hello, Friend! This is a test message'; open (SENDMAIL, "|$sndMailPath -f $from -t"); print SENDMAIL "To: $to\n"; print SENDMAIL "From: $from\n"; print SENDMAIL "Subject: $subject\n"; print SENDMAIL "Content-Type: text/plain; charset=windows-1251\n\n"; print SENDMAIL "$message\n"; close (SENDMAIL); Если | указан перед путем к программе, то это означает, что она открывается для печати в нее. Если же | стоит в конце вызываемой программы, то конвейер открывается для чтения нами. Опубликовано: 23 октября 2005 года.
|
|
© Алексей Кощеев, г.Киров, 2001-2023 |
|