ein Kapitel zurück                                           ein Kapitel weiter

Anders herum ist es in Perl ebenso möglich mit open() Programme von der Standardeingabe zu füllen.
Das Prinzip ist das selbe wie schon im Kapitel zuvor, nur das die Pipe am Anfang des Strings zu stehen hat......

open(FH, "| programmname > $outfile") or die ".......";   

Die eignet sich zum Beispiel hervorragend um aus einem Programm heraus mittels sendmail ein Mail zuverschicken....

#!/usr/bin/perl -w

open(WHERE, "which sendmail |") or die "Kein sendmail.......\n";
chomp($sendmail = <WHERE>);
close(WHERE);

$to = "root\@localhost.localdomain\n";  #Bitte anpassen
open(MAIL, "| $sendmail -oi -t $to") 
      or die "Can't open pipe to $sendmail: $!\n";
print MAIL "From: Bill.Gates\@microsoft.com\n";
print MAIL "Subject: Hallo Pinguin\n\n";
print MAIL "Dies stellt den Inhalt der Mail da\n";
close(MAIL) or die "Can't close pipe to $sendmail: $!\n";

print "Die Mail wurde erfolgreich verschickt\n";


Und schon haben sie eine Fake-Mail verschickt. Das Programm funktioniert natürlich nur wenn sich auf Ihrem Rechner sendmail befindet und dies Konfiguriert ist. Und viele werden bei diesem Beispiel an CGI-Programmierung denken. Und dabei haben sie recht. Diese Beispiel werden wir später bei der CGI-Programmierung, zum Verschicken einer Formmail verwenden.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf