Calocybe: Query-String-Übergabe unter Win32

Beitrag lesen

Hi again

Wenn ich die Environment-Variable nach der ersten beschriebenen Methode händisch setze,
scheint sie wohl resident zu sein

Ja. Die Umgebungsvariablen sind fuer diese Kommandozeilensitzung (und alle Child-Prozesse, also auch Dein Perl-Script) eben so da, das ist ja deren Sinn. Z.B. ist da auch die PATH-Variable und einige andere, die staendig benoetigt werden. Einfach set eingeben und Du bekommst die Liste. Wenn Du einen Wert loeschen willst, geht das mit
    set QUERY_STRING=

zumindest kann ich beim zweiten Script-Aufruf immer noch
darauf zurückgreifen (Deshalb meintest Du wahrscheinlich "nervenaufreibend").

Nein, nervenaufreibend weil man z.B. den Wert unter manchen Umstaenden in Anfuehrungszeichen einschliessen muss, damit die Kommandozeile nicht irgendwelche Dinge in manche Zeichen hineininterpretiert (z.B. <>). Soweit ist das normal und ok, allerdings erdreistet sich Windows, diese Anfuehrungszeichen dann als Teil des Wertes zu betrachten, und das ist gar nicht so ok, denn die " will man ja eigentlich gar nicht haben.

Wie schaut das nach der zweiten Methode aus?

Die uebergebenen Argumente gelten natuerlich nur fuer den einen Aufruf. Nur dort sind sie verfuegbar und hinterher vergessen.

Wenn ich nun KEINEN String übergebe, zählt
das als KEIN oder als LEERER String (ein Leerstring sollte die Variable zurücksetzen, oder
sehe ich das total falsch?)?

Wenn Du nichts hinschreibst, wird auch nichts uebergeben und @ARGV ist leer (hat kein einziges Element). Wenn Du aber ungefaehr
    perl script.pl ""
schreibst, dann uebergibst Du da ein Argument, das ein String der Laenge 0 ist.

Horrido, Uli

... Joho! Bei den Jaegern gewesen?

Solange