use funzt nicht

Hallo NG,
habe mir ein Steuermodul(.pl) und zwei .pm Module gebastelt.
Das Steuermodul liegt auf meinem Webserver im cgi-bin Verzeichnis.
Direkt darunter ist ein Verzeichnis 'perl_packages', wo die beiden
selbstgestrickten pm-Module liegen (neben einigen *offiziellen* Modulen von=

ActiveState).
Im Kopf des pl-Steuermoduls steht:
use lib '/perl_packages';

Wenn ich das Steuerskript aufrufe kommt aber die Meldung:

Can't locate mymodul.pm in [at] INC ( [at] INC contains: /perl_packages
/usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1
..........................
/usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl .) at myscript.=
pl
line 12.
BEGIN failed--compilation aborted at myscript.pl line 12.

Obwohl das Verzeichnis also in der [at] INC-Liste ist und die beiden Module
garantiert da drin sind, kann er sie nicht finden.
Bei den ActiveState-Modulen gibt es übrigens keine Probleme, nur bei den=

selbstgestrickten.
Und wenn ich die pm-Module auch ins cgi-bin Verzeichnis stecke, klappt es
auch. Ist allerdings keine schöne Lösung, alle möglichen Module direk=
t im
cgi-bin zu speichern....

Gruss, Helmut
helmut_nospam [ Di, 17 Oktober 2006 21:23 ] [ ID #1503945 ]

Re: use funzt nicht

Helmut Blass wrote:

> use lib '/perl_packages';

Ist Dir klar, dass der Pfad sich auf das Dateisystem
des Rechners bezieht und nicht auf das DocumentRoot-Verzeichnis
des Webserves?

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Frank Seitz [ Di, 17 Oktober 2006 22:17 ] [ ID #1503946 ]

Re: use funzt nicht

In article <4pks34Fj785qU1 [at] individual.net>, Frank Seitz <devnull4711 [at] web.de=
> wrote:
>Helmut Blass wrote:
>
>> use lib '/perl_packages';
>
>Ist Dir klar, dass der Pfad sich auf das Dateisystem
>des Rechners bezieht und nicht auf das DocumentRoot-Verzeichnis
>des Webserves?

Mit der vollständigen Pfadangabe beginnend mit /home... funzt es aber auc=
h
nicht. Und die ActiveState-Module machen, wie schon gesagt, da überhaupt =
keine
Probleme. Die werden auch gefunden mit use lib '/perl_packages';

Helmut
helmut_nospam [ Di, 17 Oktober 2006 22:45 ] [ ID #1503947 ]

Re: use funzt nicht

Helmut Blass wrote:
> In article <4pks34Fj785qU1 [at] individual.net>, Frank Seitz <devnull4711 [at] web.de> wrote:
>>Helmut Blass wrote:
>>>
>>>use lib '/perl_packages';
>>
>>Ist Dir klar, dass der Pfad sich auf das Dateisystem
>>des Rechners bezieht und nicht auf das DocumentRoot-Verzeichnis
>>des Webserves?
>
> Mit der vollständigen Pfadangabe beginnend mit /home... funzt es aber auch
> nicht.

Das mag sein. Das ändert nichts daran, dass dieser absolute Pfad
nicht bezüglich DocumentRoot interpretiert wird. Läuft der
Webserver vielleicht in einer chroot-Umgebung?

> Und die ActiveState-Module machen, wie schon gesagt, da überhaupt keine
> Probleme. Die werden auch gefunden mit use lib '/perl_packages';

Vielleicht meinst Du das nur, aber sie werden tatsächlich über
einen anderen Pfad gefunden?

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Frank Seitz [ Di, 17 Oktober 2006 23:01 ] [ ID #1503948 ]

Re: use funzt nicht

Helmut Blass schrieb:

>>> use lib '/perl_packages';
>> Ist Dir klar, dass der Pfad sich auf das Dateisystem
>> des Rechners bezieht und nicht auf das DocumentRoot-Verzeichnis
>> des Webserves?
> Mit der vollständigen Pfadangabe beginnend mit /home... funzt es aber auch
> nicht.

Wie sieht dein Code aus? Wie lautet die Fehlermeldung? Suchst du vielleicht
FindBin? Hast du Groß- und Kleinschreibung bei Dateinamen bedacht?

> Und die ActiveState-Module machen, wie schon gesagt, da überhaupt keine
> Probleme. Die werden auch gefunden mit use lib '/perl_packages';

Du nutzt ActivePerl für UNIX? Wieso sagst du das nicht gleich?

So ganz verstehe ich dein OP nicht, aber

use lib 'perl_packages';

sollte tun.


Frank
Frank Wiegand [ Di, 17 Oktober 2006 23:06 ] [ ID #1503949 ]

Re: use funzt nicht

Helmut Blass:

>> Das Steuermodul liegt auf meinem Webserver im cgi-bin Verzeichnis.
>> Direkt darunter ist ein Verzeichnis 'perl_packages', wo die beiden

[...]

> Mit der vollständigen Pfadangabe beginnend mit /home... funzt es aber auch
> nicht.

Könntest du vielleicht mal die beteiligten Pfade alle _vollständig_ posten?

> Und die ActiveState-Module machen, wie schon gesagt, da überhaupt keine
> Probleme. Die werden auch gefunden mit use lib '/perl_packages';

Das kann ich nicht nachvollziehen. Bist du sicher, dass die AS-Module
aus /perl_packages geladen werden? Schau mal, was dein Code mit

print "$_ = $INC{$_}\n" foreach keys %INC;

rausschreibt. Ist da /perl_packages dabei?

Was mir noch einfällt: passt die Permission? Eine Moduldatei sollte
normalerweise auch von "other" lesbar sein (und das Verzeichnis,
in dem sie sich befindet, ebenfalls).

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol [at] adv.magwien.gv.at
Ferry Bolhar [ Mi, 18 Oktober 2006 16:25 ] [ ID #1505471 ]

Re: use funzt nicht

In article <453545aa$0$32426$9b4e6d93 [at] newsspool1.arcor-online.net>, Frank W=
iegand <frank [at] kcet.de> wrote:

> > Und die ActiveState-Module machen, wie schon gesagt, da überhaupt kei=
ne
>> Probleme. Die werden auch gefunden mit use lib '/perl_packages';
>
>Du nutzt ActivePerl für UNIX? Wieso sagst du das nicht gleich?

Was spielt das für eine Rolle? Das sind einfach stinknormale Textdateien,=
wie
die vom CPAN..
helmut_nospam [ Do, 19 Oktober 2006 22:22 ] [ ID #1506933 ]

Re: Use funktioniert nicht (was: use funzt nicht)

Helmut Blass wrote:
> In article <453545aa$0$32426$9b4e6d93 [at] newsspool1.arcor-online.net>, Frank Wiegand <frank [at] kcet.de> wrote:
>
>
>>>Und die ActiveState-Module machen, wie schon gesagt, da überhaupt keine
>>>Probleme. Die werden auch gefunden mit use lib '/perl_packages';

Die werden gefunden, weil die Perl-Binary sie per
Voreinstellung findet. Die sind mit Sicherheit in
/usr/lib/perl5/vendor_perl/5.8.1
oder so.
Wenn Du Root-Zugang hast, kannst Du _testweise_
mal einen symbolischen Link von dort auf Dein
Modul machen oder Deine Module dorthin kopieren.

Die ersten Fehlermeldung, die Du bekamst, hat
verraten, wo Dein Perl nach Modulen sucht.

MP
Michael Perle [ Sa, 21 Oktober 2006 14:49 ] [ ID #1509585 ]
Perl » de.comp.lang.perl.misc » use funzt nicht

Vorheriges Thema: %ENV enthältnicht alle Umgebungsvariablen
Nächstes Thema: Mehrdimensionaler Hash