Finde den Fehler nicht...
gant
- perl
Hallo
Hoffe, jemand von Euch kann mir helfen. Ich haben folgenden Skript-Schnipsel:
if (-e "D:\MSIIS\Log\w3c\W3SVC1\ex".$Jahr.$Monat.$Monatstag.".log") {
open(LOG, "<D:\MSIIS\Log\w3c\W3SVC1\ex".$Jahr.$Monat.$Monatstag.".log");
@file = <LOG>;
foreach (@file) {
$_ =~ s/T /export_/T /export/export_/g;
$_ =~ s/T /processnet/export_/T /export/export_/g;
print(LOG $_);
}
close(LOG);
}
Wenn ich das Skript auszuführen versuche, erhalte ich zwei Syntaxfehler, einer in der IF-Zeile near { und den zweiten in der (hier) letzten Zeile near }. Alle Variablen sind sauber Deklariert und wo notwendig auch schon vor dem Ausschnitt initialisiert.
Kann mir jemand sagen, wo das Problem liegt?
Besten Dank und Gruss
Hoffe, jemand von Euch kann mir helfen. Ich haben folgenden Skript-Schnipsel:
du verwendest use strict und hast die Warnungen eingeschaltet?
if (-e "D:\MSIIS\Log\w3c\W3SVC1\ex".$Jahr.$Monat.$Monatstag.".log") {
Das sieht nicht schön aus. In Perl kannst du immer Slashes anstatt Backslahes verwenden und Perl interpoliert. sinnvoll wäre hier auch eine Variabel:
my $file = "D:/MSIIS/Log/w3c/W3SVC1/ex$Jahr$Monat$Monatstag.log";
if (-e $file) {
open LOG, $file || die "Kann $file nicht öffnen, weil: $!";
print(LOG $_);
Um in den File schreiben zu können musst du ihn auch entsprechend öffnen ( mit <+ ), das erfordert aber eine Menge mehr arbeit (seek)
Struppi.
Hallo gant
if (-e "D:\MSIIS\Log\w3c\W3SVC1\ex".$Jahr.$Monat.$Monatstag.".log") {
open(LOG,<D:\MSIIS\Log\w3c\W3SVC1\ex".$Jahr.$Monat.$Monatstag.".log");
probiere mal
my $pfad = "D:\MSIIS\Log\w3c\W3SVC1\ex.$Jahr.$Monat.$Monatstag.log"
if(-e $pfad) {
open(LOG,"<$pfad");
print(LOG $_);
Print LOG $_;
Gruß mich