Klaus Mock: Wie setzt man die @INC

Beitrag lesen

Hallo,

ich bekomme hier an meinem Rechner (Redhat Linux 7.3) ständig die Fehlermeldung bei der Ausführung eines Perl-Skriptes, dass die MD5.pm nicht gefunden werden kann ("Can't locate MD5.pm in @INC "). Die Datei ist zwar vorhanden aber der Pfad fehlt in der @INC.

DAnn dürfte das Modul nicht so installiert worden sein, wie es an anund für sich bei Perl vorgesehen wurde. Vielleicht würde auch die Lektüre von perlmodinstall helfen.

Gibt es eine Möglichkeit diese global irgendwie zu beeinflussen ohne den Pfad im Skript oder via Kommandozeile übergeben zu müssen.

Naja eine Variante wüßte ich schon, die ist aber nicht gerade die feine Art. Also : 'kids, don't try this at home'

#!/path/to/perl

BEGIN
{
push @INC,split(':',$ENV{'MY_PERL_INCLUDE'});
}

use whatever::modules;

Die Zusätzlichen Perl-Pfade kannst Du dann ja in der Environmentvariable 'MY_PERL_INCLUDE' ablegen.

Wenn man ein Perlskript aufruft, sind ja schon Pfade in dieser "Variable" enthalten. Und irgendwo müssen die ja herkommen. Woe genau sind sie definiert?

AFAIK werden die Standardpfade bereits beim Kompilieren festgelegt. Allerdings, wenn Du Perl neu kompilieren könntest, dann könntest Du auch die Module gleich in die richtigen Pfade ablegen, was Dir diesen Streß hier ersparen würde.

Grüße
  Klaus