Mam dwie różne wersje modułu Perla. Obecnie kluczowy skrypt wykorzystuje wersję modułu określoną przez zmienną środowiskową, a system opiera się na różnych zadaniach wykonywanych przez różnych użytkowników. Środowisko użytkownika określa, która wersja modułu Perla była używana.Jak dynamicznie zmieniać ścieżkę modułu Perla?
Teraz chciałbym zmienić to na wersję, która jest określona w skrypcie Perla, tj. W zależności od przekazanych opcji. Niestety, kod taki jak ten:
if ($new){ use lib "newdir"; }
else{ use lib "olddir"; }
use module;
nie działa. Perl dodaje po prostu newdir, a następnie olddir do @INC
, a następnie uruchamia skrypt.
Jak określić dynamicznie, który moduł ma być używany?
Twój * dziwny * styl bracketingu pozostawił ci niezamknięty blok. (Teraz, aby rozpocząć wojnę bracketingową!) – Axeman
Eek. Dzięki, Axeman. – mob
Warto również wspomnieć, że "use lib" i bezpośrednie manipulowanie @INC nie zawsze są równoważnymi operacjami. Zobacz dokumentację, aby uzyskać więcej szczegółów. – jrockway