Klaus Grube: Dateien auf Server abfragen

Hallo ihr Lieben,

Mit meinen Adventskalender bin ich ja schon ganz weit gekommen.
Aber es gibt da noch ein Problem.

Mit den ->   print "Location: $baseurl$Zeit[2]$Zeit[1].shtml\n\n";

kann ich jetzt die Dateien über CGI problemlos aufrufen.
Aber da es sich ja um einen Adventskalender handelt sind auch dementsprechend nur die Dateien vom 1 bis zum 24. Dezember vorhanden.
Ruft jetzt jemand das CGI-Script außerhalb dieser Datumszeit auf meinentwegen am  07.11
kommt natürlich eine Fehlermeldung vom meinen Localserver da die Datei ja nicht vorhanden ist.Ist ja ach Logisch.
Besser wäre natürlich wenn außerhalb der Adventszeit also vor dem 1. und nach dem 24. Dezember eine fehler.html Seite kommen würde.
ungefähr so -  print "Location: http://localhost/fehler.html\n\n";  
Da ich mir aber denke über das Datum eine Lösung zu suchen(viel zu kompliziert) habe ich versucht das Problem über eine Dateien- Abfrage zu lösen. aber Wie? oder giebt es noch andere Möglichkeiten?
Die HTML Seiten heissen 1-12.shtml bis 24-12.shtml
Vielen Dank

Hier das komplette Script:
#!/usr/bin/perl
  $baseurl = "http://localhost/kal_00/kalender/";
  
  $Jetztwert = time();
  $Jetztzeit = localtime($Jetztwert);
  &Deutschnamen;
  @Zeit = split(/ +/,$Jetztzeit);  
  @Uhrzeit = split(/:/,$Zeit[3]);    
    
  print "Location: $baseurl$Zeit[2]$Zeit[1].shtml\n\n";
  
  # print "Location: http://localhost/kal_00.html\n\n";
  
  sub Deutschnamen  
  {
      
   $Jetztzeit =~ s/Jan/-01/;  
   $Jetztzeit =~ s/Feb/-02/;  
   $Jetztzeit =~ s/Mar/-03/;  
   $Jetztzeit =~ s/Apr/-04/;  
   $Jetztzeit =~ s/May/-05/;  
   $Jetztzeit =~ s/Jun/-06/;  
   $Jetztzeit =~ s/Jul/-07/;  
   $Jetztzeit =~ s/Aug/-08/;  
   $Jetztzeit =~ s/Sep/-09/;  
   $Jetztzeit =~ s/Oct/-10/;  
   $Jetztzeit =~ s/Nov/-11/;  
   $Jetztzeit =~ s/Dec/-12/;  
  }

  1. hab' die vorgeschichte nicht mitbekommen, aber ... :
    der "open" befehl liefert einen Returncode. Ist dieser 0, dann war das "open" nicht erfolgreich.

    Also z.B.

    $dateiname = ... bestimmen von 1-12.shtml bis 24-12.shtml ... ;

    $openresult = open (HANDLE, "<$dateiname");

    if (! $openresult ) {
       ... Behandlung wenn datei nicht geöffnet werden konnte ...
       }

  2. ungefähr so -  print "Location: http://localhost/fehler.html\n\n";

    if(-f $datei) {
        # Datei existiert -> Adventskalender
    }
    else {
        # Datei nicht vorhanden -> fehler.html
    }

    '-f $datei' liefert nur dann '1', wenn $datei ein file ist (kein directory o.ä.)