| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > IPC::вывод данных в дочерный процесс |
| Автор: tcg2 26.9.2006, 15:27 |
| Добрый ден, подскажите добры люди... Хотелось бы результат выше неупоменатого кода, чтобы поступил в качестве содержание e-maila, ниже) Каким образом это можно реализовать в одном файле, а не в двух разных ................ use Net::SMTP; use Sys::Hostname; $hostname = hostname(); if(open(CHILDHANDLE,"|-") { #эта строка сюда пишется или где-то выше while (<CHILDHANDLE>) { $smtp = Net::SMTP->new('IP...'); $smtp->mail('mail...'); $smtp->to('mail...'); $smtp->data(); $smtp->datasend("From: $hostname"); $smtp->datasend("\n"); $smtp->datasend("To: Name..."); $smtp->datasend("\n"); $smtp->datasend("Subject: ...."); $smtp->datasend("\n"); $smtp->datasend(<CHILDHANDLE>); $smtp->dataend(); $smtp->quit; close(CHILDHANDLE); } |
| Автор: nitr 26.9.2006, 16:31 |
это что за каламбур?? конкретизируйте проблему! |
| Автор: tcg2 26.9.2006, 17:00 |
| Извините за ошибку! Хотелось бы имя машин, логин и все такое, которое находится в первой части программ, чтобы отправлялось по e-mail Результат кода дает: " '-' is not recognized as an internal or external command operable program or batch file" ======================================== #!c:\Perl\bin\perl.exe print "\n"; print "\n"; use Sys::Hostname; $hostname = hostname(); print "=" x 16, $hostname,"=" x 16 ,"\n"; use Time::localtime; $tm = localtime; $tma = localtime; printf("%04d-%02d-%02d", $tm->year+1900, ($tm->mon)+1, $tm->mday); printf("\t\t\t\t\t%02d:%02d:%02d\n", $tma->hour, $tma->min, $tma->sec); $gnadd = gethostbyaddr($iaddr,AF_INET); print "\nLogon to: ",getlogin; print "\nMachine name: ",$gnadd, "\n"; use Net::SMTP; use Sys::Hostname; $hostname = hostname(); if(open(CHILDHANDLE,"|-") { #эта строка сюда пишется или где-то выше while (<CHILDHANDLE>) { $smtp = Net::SMTP->new('IP...'); $smtp->mail('mail...'); $smtp->to('mail...'); $smtp->data(); $smtp->datasend("From: $hostname"); $smtp->datasend("\n"); $smtp->datasend("To: Name..."); $smtp->datasend("\n"); $smtp->datasend("Subject: ...."); $smtp->datasend("\n"); $smtp->datasend(<CHILDHANDLE>); $smtp->dataend(); $smtp->quit; close(CHILDHANDLE); } |
| Автор: amg 27.9.2006, 13:23 |
| Иногда нужно с минимальной переделкой скрипта добиться, чтобы скрипт посылал мейлом то, что печатает на консоль. Не это ли требуется? Если да, то могу как-то помочь. А если нужно организовать именно некое хитрое IPC с перенаправлением потоков, то тут уж сами... |
| Автор: tcg2 27.9.2006, 13:33 |
| Д нет, просто нужно имя компьютера и все такое которое определяется в первой части программы, чтобы служило как -datasend- при отправке почтой, с второй(нижней части программы) Спасибо! |