akela: Perl - Kontext-Erkennung

Hallo,

ich schreibe mehrere CGI-scripts, die natürlich hauptsächlich per web-Interface aufgerufen werden. Nun möchte ich die gleichen scripts auch auf der console aufrufen. Dafür muß dann aber die Parameterauswertung variieren. Gibt es eine Möglichkeit in Perl, den Kontext des Aufrufs zu erkennen (CGI bzw. console)?

Ciao Andreas

  1. ich schreibe mehrere CGI-scripts, die natürlich hauptsächlich per web-Interface aufgerufen werden. Nun möchte ich die gleichen scripts auch auf der console aufrufen. Dafür muß dann aber die Parameterauswertung variieren.

    Nö. Wenn Du CGI.pm verwendest, kannst Du auch 'perl script.pl "arg1=value1&arg2=value"' machen und alles passt, das löst die Variablen automatisch korrekt auf.

    Gibt es eine Möglichkeit in Perl, den Kontext des Aufrufs zu erkennen (CGI bzw. console)?

    z.B. $ENV{'HTTP_HOST'} dürfte nur im CGI-Kontext gesetzt sein.

    1. Hallo,

      z.B. $ENV{'HTTP_HOST'} dürfte nur im CGI-Kontext gesetzt sein.

      das ist genau das, was ich brauche. So einfach, daß man sich fast schämt, die Frage gestellt zu haben ;-)

      Danke.

  2. Ein CGI Script kriegt seine Parameter entweder aus STDIN oder aus einer Server-Umgebungs-Variablen. Letzeres hast Du nicht auf der Konsole, das ist der QUERY_STRING.

    Für Konsolen-Scripts gibt es Getopt::Long - Extended processing of command line options.

    Der Einsatzbereich CGI-Script/Konsolen-Script ist jedoch dermaßen unterschiedlich, dass ich bei Deinem Anliegen einen grundsätzlichen konzeptionellen Fehler vermute. pl