J'ai un script Perl qui imprime plusieurs lignes de sortie à l'écran. J'ai besoin de capturer ces lignes et soit les envoyer dans un seul morceau de courrier électronique (/ bin/mail) ou dans un fichier texte que je peux envoyer par/bin mail dans une autre opération. En fait, j'ai déjà compris la façon simple (stupide) avec laquelle j'utilise un wrapper bash pour faire le mailing. On dirait,Comment envoyer une sortie multiligne de Perl à/bin/mail?
#!/usr/bin/bash
source /nethome/zog/.bash_profile
cd /nethome/zog/bin/perl
/nethome/zog/bin/perl/find_free_space.pl > text.file
/bin/mail -s [email protected] [email protected] < text.file
Je veux utiliser Net :: SMTP pour faire le bit smtp. Ce qui précède est inélégant, c'est le moins qu'on puisse dire.
j'ai vu quelque chose comme ceci:
open(MAIL, "| /bin/mail -s FreePorts me\@geemail.com") ||
die "mail failed: $!\n"; print MAIL "This is how it goes."
sur stackoverflow, mais n'a pas réussi à rediriger le courrier dans STDOUT. J'utilise:
$complete_output .= "\n"; "|/bin/mail -s FreePorts zog\@geeemail.com" || die "mail failed: $!\n";
Je ne sais pas si vous avez tous besoin de voir le script Perl pour aider, mais it is on pastebin. S'il vous plaît, faites-moi savoir.
vous êtes venu assez près, voir http://stackoverflow.com/questions/655719/how-do-i-unalias-from-perls-stdout – msw