Perl 5 versões secundárias são retrocompatíveis, então um módulo 5.8.8 deve funcionar com um 5.10.1 perl (mas há uma exceção, veja CAVEAT abaixo). O caminho de inclusão ( @INC
) é configurado quando o perl é construído, mas @INC
pode ser modificado por programas individuais e, globalmente, o conteúdo da variável de ambiente $ PERL5LIB é prefixado.
export PERL5LIB=/usr/local/appx/lib/5.8.8
No entanto, há um problema com essa abordagem. Como $ PERL5LIB é prefixado para @INC
, isso fará com que o diretório 5.8.8 tenha precedência quando carregando vários módulos padrão. Isso não é desejável.
Portanto, uma idéia menos organizada, mas, em última instância, melhor é apenas ligar simbolicamente /usr/local/appx/lib/5.8.8/RRD.pm
(e / ou o diretório RRD, se houver) em /usr/local/lib/perl5
ou algum outro diretório padrão @INC
. Você pode ver aqueles com:
perl -e 'print "$_\n" foreach @INC'
Observe que pode haver um diretório RRD.pm de nível superior e um diretório RRD paralelo; se assim você quiser symlink ambos.
CAVEAT
Alguns módulos perl incluem partes que são compiladas de C, e estas podem quebrar. Se RRD.pm não usa C, então você não precisa se preocupar. Em caso afirmativo, você deve copiá-lo em vez de ligá-lo e reconstruí-lo; para isso você precisa da fonte, que pode ou não estar lá: (