gant: Finde den Fehler nicht...

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

  1. 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.

  2. 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