require/use von .pm im aktuellen Verzeichnis -> can't loc

Alles, was Perl betrifft, kann hier besprochen werden.

require/use von .pm im aktuellen Verzeichnis -> can't loc

Postby kay102 » 14. January 2007 23:34

Hallo,

Ich möchte gern eine .pm-Datei aus dem selben Verzeichnis in eine .pl-Datei einbinden. Das funktioniert jedoch leider nicht:
Code: Select all
...[error] Can't locate bla.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache2) at /var/www/bla/public_html/cgi-bin/bla/bla.pl line 7.\n


Wenn ich die pm-Datei in ein anderes include-Verzeichnis (beispielsweise /usr/local/lib/site_perl/) kopiere, läuft alles einwandfrei.

Ich finde das sehr misteriös und weiß nicht so recht weiter, da ja das aktuelle Verzeichnis genauso bei den includes steht wie die anderen Pfade...

Kann mir bitte jemand weiterhelfen?

Ich verwende (wird zwar sicherlich irrelevant sein, aber naja...):
Debian/Linux Etch
Apache 2.2.3
libapache2-mod-perl 2.0.2-2.3
kay102
 
Posts: 4
Joined: 14. January 2007 23:03

Postby Wiedmann » 14. January 2007 23:46

Ich finde das sehr misteriös und weiß nicht so recht weiter, da ja das aktuelle Verzeichnis genauso bei den includes steht wie die anderen Pfade...

Und was ist dann das aktuelle Verzeichnis beim Aufruf des Scriptes?

(Sag dann auch bitte dazu, woher du die Antwort hast.)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kay102 » 15. January 2007 00:01

das aktuelle verzeichnis sollte doch
/var/www/bla/public_html/cgi-bin/bla/
sein, oder?

aber was mich gerade etwas stutzig macht: folgendes skript (/var/www/bla/public_html/cgi-bin/bla/) liefert mir als ausgabe den inhalt von /
das verstehe ich aber nicht! das arbeitsverzeichnis sollte doch /var/www/bla/public_html/cgi-bin/bla/ sein, oder hab ich da gerade einen denkfehler?

Code: Select all
  1 #!/usr/bin/perl -w
  2 print "Content-type: text/plain\n\n";
  3 open(LS," ls -l |");
  4 while ($Zeile = <LS>) {
  5      print $Zeile;
  6 }
kay102
 
Posts: 4
Joined: 14. January 2007 23:03

Postby Wiedmann » 15. January 2007 08:44

das aktuelle verzeichnis sollte doch
/var/www/bla/public_html/cgi-bin/bla/
sein, oder?

Nicht unbedingt. Bei mod_perl z.B. nicht.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kay102 » 16. January 2007 00:30

gibt es eine möglichkeit, dem skript begreiflich zu machen, dass es in dem verzeichnis nach der datei suchen soll, in dem auch die aufrufende datei liegt?
kay102
 
Posts: 4
Joined: 14. January 2007 23:03

Postby Wiedmann » 16. January 2007 08:26

Füge das Verzeichnis zum INC-Path hinzu, oder ändere das Arbeitsverzeichnis. (INC-Path bevorzugt)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to Perl

Who is online

Users browsing this forum: No registered users and 15 guests