Hi Frank!
$0 liefert den Dateinamen des Skripts. Vielleicht wird dabei auch der Pfad mit übergeben? Müsste man mal ausprobieren...
Die Idee ist gut, aber es ist ja nicht gesagt, dass das Script in seinem Verzeichnis gestartet wird. Der IIS von M$ hat da z.B. ein paar Eigenarten. Er *scheint*, das Script immer in dem Verzeichnis zu starten, welches das oberste im aktuellen *virtuellen* Verzeichnis ist. Beispiel: Ich habe zwei virtuelle Verzeichnisse:
/ --> c:\www\root
/cgi-bin --> c:\www\cgi
Wenn ich jetzt http://x.y.z/cgi-bin/foo/foo.pl aufrufe, dann ist das aktuelle Verzeichnis des Scripts nicht etwa c:\www\cgi\foo, sondern c:\www\cgi. Wie gesagt, es *scheint* so zu sein, ich bin damals dem Phaenomen nicht weiter nachgegangen, weil es fuer mein aktuelles Problem nicht relevant war und ich auch nicht den Ehrgeiz habe, alles ueber den IIS herauszufinden.
Wie auch immer, $0 liefert bei mir (ActivePerl auf WinNT4) immer den vollen Pfad zum Script in MS-Schreibweise, also I:\files\perl\script_path.pl, egal ob ich das Script mit ..\script_path.pl oder /files/perl/script_path.pl aufgerufen habe. Man koennte also $0 hernehmen, den Dir-Anteil rausholen (das dann mit dirname() aus File::Basename), und das dann an chdir() uebergeben, falls das eigentliche Problem darin besteht, dass das Script im aktuellen Verzeichnis liegt.
Bye by Calocybe