AlexBausW: cgi: @required = ("name", "comment"); aus TXT-Datei einlesen

Beitrag lesen

Hallo Andrea,

In der required.txt:

»»    "name", "comment"

Im cgi-File:

»»    open (REQUIRED, "required.txt");
»»    @required = <REQUIRED>;
»»    close(REQUIRED);

Wenn Du so wie oben verfährst, steht im ersten Element von @required ($required[0]) die angegebene Textzeile, weil der Eingabeoperator <> Dateien zeilenweise in ein Array einliest. Sofern also $/ eq "\n" zutrifft, steht in jedem Element von @required eine Zeile Deiner Datei.
Wenn Du so etwas wie @required = ("name","comment"); erreichen möchtest, kannst Du auf verschieden Art und weise vorgehen:

  1. In der required.txt: (Auslagern von Code)
          @required = ('name','comment');
          1;   # die Eins ist afaik hier nicht nötig, da hier eine Zuweisung stattfindet, die imho "true" ist

Im Skript: (der Code wird einfach eingebunden)
      require 'required.txt';

  1. In der required.txt: (die Werte durch ein einfaches Trennzeichen separiert)
          name,comment

Im Skript: (einlesen der ersten Textzeile und Splitten der Werte beim angegebenen Trennzeichen)
      open (REQUIRED, "required.txt") die "YourFehlermeldung $!";
         @required = split /,/, <REQUIRED>;
         chomp $required[-1]; # Zeilenvorschub aus dem letzten Element entfernen, falls vorhanden
      close(REQUIRED);

Ich hoffe das hilft Dir weiter :-) Allerdings solltes Du schon noch versuchen, den Code des Skriptes zu verstehen, damit Du auch weist, warum Deine Version nicht funktionieren konnte.

Gruß AlexBausW

P.S.: untested && TIMTOWTDI