Thread require und local::lib (2 answers)
Opened by bianca at 2018-06-07 09:15

haj
 2018-06-07 11:03
#188507 #188507
User since
2015-01-07
527 Artikel
BenutzerIn

user image
2018-06-07T07:15:52 bianca
Auf dem Webspace mit local::lib funktioniert if (defined $verzeichnis) { use local::lib $verzeichnis; } wunschgemäß.
Aber auf einem Webspace ohne dies erzeugt es seitenweise Fehler, scheinbar für jedes Modul mindestens einen Fehler.


Diese Schreibweise ist etwas seltsam: defined $verzeichnis prüft, ob die Variable $verzeichnis definiert ist, nicht aber, ob das Verzeichnis existiert. Ob das Verzeichnis existiert, prüfst Du mit -d $verzeichnis.

Das ganze ist ein Wettlauf zwischen dem Perl-Parser und local::lib, das unter Umständen vorher die Verzeichnisse richtigstellen muss.
Um local::lib den notwendigen Vorsprung zu verschaffen, kannst Du einen BEGIN-Block verwenden:

Code (perl): (dl )
1
2
3
4
5
6
7
BEGIN {
    my $verzeichnis = "...";
    if (defined $verzeichnis) {
        eval "use local::lib '$verzeichnis';";
        die $@ if $@;
    }
}

View full thread require und local::lib