2012-01-18 5 views
7

Non ho accesso root su una casella remota con cui sto lavorando, quindi sto usando una combinazione di cpanm e local :: lib come descritto here per installare i moduli CPAN nella mia directory locale sulla scatola. Usando cpanm, presumo che cpanm Module::To::Update installerebbe la versione più recente del modulo nella mia libreria locale.Cosa fa Perl quando sono installate due versioni di un modulo?

Apparentemente, non ho bisogno dell'accesso root per aggiornare i miei moduli con CPAN, come ho appena provato, e l'aggiornamento è andato bene. Tuttavia, sono ancora curioso di sapere quale versione del modulo Perl utilizzerà: la versione locale o la versione CPAN predefinita? O userà solo quale è più recente?

Se questo esiste in perldoc o Stack Overflow, lo apprezzerei anche. Ho provato a cercare entrambi, ma non sono stato in grado di trovarlo =/

risposta

13

Utilizza il primo che trova durante la ricerca di @INC nell'ordine.

+0

Oh. È piuttosto semplice. E presumibilmente specificando 'use Module Version 'mi lascerebbe scegliere quale volevo manualmente. Grazie. – gempesaw

+4

@dgempesaw - Quella presunzione sarebbe errata. Se hai bisogno di caricare un particolare modulo da una particolare posizione, dovrai eseguire l'hacking su '@ INC' o'% INC' (ci sono molti modi per farlo. Come farlo sarebbe una buona domanda di follow-up). – mob

+4

@dgempesaw, Per trovare la versione del modulo, Perl deve eseguire il modulo. Il modulo non può essere annullato se non è la versione corretta. – ikegami

0

si può controllare eseguendo questo in Linux:

perl -e 'use <module>; print $<module>::VERSION;'