Wo bin ich? - Oder wer sieht welches Verzeichnis
Holger Jürs
- perl
Hallo zusammen,
so blöd wie die Frage, so verwundert bin ich, dass ich keine Lösung finde:
Ich möchte mittels SSI ein Perl-Script starten, der Aufruf in der HTML-Datei sieht so aus:
<!--#exec cgi="/cgi-bin/c_verz/script.pl"-->
Die HTML-Datei befindet sich im Verzeichnis
www/user/html/h_verz/datei.shtml
das CGI-Verzeichnis hat die Adresse
www/user/cgi-bin/
Nun soll das Script ein Dokument öffnen, dass im selben Verzeichnis liegt, wie das Script selbst, doch weder
/www/user/cgi-bin/c_verz/doku.txt noch
www/user/cgi-bin/c_verz/doku.txt noch
/cgi-bin/c_verz/doku.txt ..... usw.
führen zum Ziel. Ich bekomme die Datei nicht geöffnet. Rufe ich das Script direkt auf, führt die erste Variante zum Ziel, egal wo das Script liegt.
Wo befindet sich denn das Dokument aus Sicht des Scripts, wenn dieses mit SSI aus einem HTML-Verzeichnis aufgerufen wird?
Was mache ich denn falsch? (Ich kenne mich leider fast gar nicht mit Unix aus.)
Es wäre sehr nett, wenn mir jemand helfen könnte.
Vielen Dank
Holger
Hi,
Nun soll das Script ein Dokument öffnen, dass im selben Verzeichnis liegt, wie das Script selbst,
doch weder
/www/user/cgi-bin/c_verz/doku.txt noch
www/user/cgi-bin/c_verz/doku.txt noch
/cgi-bin/c_verz/doku.txt ..... usw.
benutz doch einfach
./doku.txt
Der . steht dabei für das aktuelle Verzeichnis
Was mache ich denn falsch? (Ich kenne mich leider fast gar nicht mit Unix aus.)
Du hast absolute Verzeichnisangaben gemacht.
/cgi-bin/c_verz/doku.txt
Ist die Datei "doku.txt" in
/cgi-bin/c_verz/
mfg
CK1
Hi,
Nun soll das Script ein Dokument öffnen, dass im selben Verzeichnis liegt, wie das Script selbst, doch weder
/www/user/cgi-bin/c_verz/doku.txt noch
www/user/cgi-bin/c_verz/doku.txt noch
/cgi-bin/c_verz/doku.txt ..... usw.führen zum Ziel.
#!/usr/bin/perl -w
use strict;
use FindBin;
use CGI ':standard';
print header('text/plain'), $FindBin::Bin;
Mehr dazu in
perldoc FindBin
Cheatah