Patrick Andrieu: relativer (?) Pfad für open(...)

Beitrag lesen

Hallo Hagen!

Perl-Script geschrieben, welches u.a. mittels open auf einige Dateien im gleichen Verzeichnis zugreift
Nun wollte ich das Script per Cron-Job starten. Also als Befehlszeile 'perl /ab/cd/ef/bsp.pl' angegeben. Nun werden die Dateien, auf die innerhalb des Scriptes zugegriffen wird, im root-Verzeichnis vermutet und nicht im gleichen Verzeichnis wo sich das Perl-Script befindet, da im Script keine absoluten Pfadangaben verwendet wurden.

Darfst Du im Perl-Script etwas verändern? Wenn ja, nun, der vordefinierte Skalar $0 liefert den kompletten Pfad des Programms inklusive Programmname:

C:\Dokumente und Einstellungen\User\Pfad\zum\Programm\bsp.pl (z.B. Win XP)
/pfad/vom/Rootverzeichnis/ausgehend/für/unix/bsp.pl (z.B Unix)

Aus diesem Pfad könntest Du den Programmnamen entfernen und in eine Variable speichern, dann die Dateinamen dranhängen. Quick&Dirty:

$pfad = $0;
$pfad =~ s/bsp.pl$//;
$datei1 = $pfad."datei1.ext";
$datei2 = $pfad."datei2.ext";
.
.
.
.
open (...)

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?