perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 22
Click for quality!




11.02.2012 / 23:07

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragPrint schreibt nicht
Seitenanfang
Hallo an alle,

ich habe einen einfachen print Befehl in meinem Perl skript:


open (LISTE, ">>$liste");
open (LOG, ">>$logfile");
if (...){
print LISTE "Hallo";
print LOG "Hallo";
print "Hallo";
}

So In LOG schreibt es, in der Konsole gibt es auch die Ausgabe ABER in LISTE nicht!
Beide Files sind im gleichen Verzeichnis mit den gleichen Berechtigungen und sind einfache txt files....
Keine Fehlermeldungen garnichts...

Woran kann es liegen??

Bitte um Hilfe :o(

Datum: 27.02.2009-12:55

Beitragre: Print schreibt nicht
Seitenanfang
Ach wenn man von Blindheit geschlagen ist..

Mein Fehler.. Der Filehandle war geschlossen. Immerhin aber doch seltsam dass er keine Fehlermeldung brachte.

Grüße
Theo

Datum: 27.02.2009-13:31

Beitragre: Print schreibt nicht
Seitenanfang
Warum sollte es eine Fehlermeldung geben. Du hast Perl ja nicht gesagt, dass es sich melden soll wenn etwas schiefgeht.

Du solltest immer Fehlerbehandlung machen:

open( FILEHANDLE, ">>$datei" ) or die $!;

Der "or die $!" ist der wichtige Teil. In $! steckt die Fehlermeldung und das "die" bricht das Programm ab. Wenn das Programm nicht abgebrochen werden soll, kannst Du das "die" durch "print" oder "warn" ersetzen.

Noch eine Anmerkung: Du solltest die 3-Arg-Form von "open" verwenden, da es sonst bei bestimmten Dateinamen Probleme geben kann (z.B. wenn ein Angreifer die Datei "/tmp/irgendwas; rm -rf /" nennt. Der String wird dann von der Shell interpretiert.

Du solltest also so etwas machen:

open( FILEHANDLE, '>>', $datei ) or die $!;

Datum: 28.02.2009-11:50

Beitragre: Print schreibt nicht
Seitenanfang
Danke für den Hinweis.. Macht Sinn..

Datum: 04.03.2009-08:45

-






-
-