2012-01-18 8 views
7

No tengo acceso de root en una caja remota con la que estoy trabajando, entonces estoy usando una combinación de cpanm y local :: lib como se describe en here para instalar los módulos de CPAN en mi directorio local en la caja. Usando cpanm, supongo que cpanm Module::To::Update instalaría la versión más reciente del módulo en mi biblioteca local.¿Qué hace Perl cuando se instalan dos versiones de un módulo?

Aparentemente, no necesito acceso de root para actualizar mis módulos con CPAN, ya que lo probé, y la actualización fue sencilla. Sin embargo, todavía tengo curiosidad de saber qué versión del módulo usará Perl: la versión local o la versión CPAN predeterminada. ¿O solo usará el que sea más nuevo?

Si esto existe en perldoc o Stack Overflow, lo agradecería también. Intenté buscar ambos, pero no pude encontrarlo =/

Respuesta

13

Utiliza el primero que encuentra al buscar @INC en orden.

+0

Oh. Eso es bastante simple. Y, presumiblemente, al especificar 'use Module Version' me permitía elegir cuál quería manualmente. Gracias. – gempesaw

+4

@dgempesaw - Esa presunción sería incorrecta. Si necesita cargar un módulo particular desde un lugar en particular, tendrá que hackear en '@ INC' o'% INC' (Hay muchas maneras de hacerlo. Cómo hacer eso sería una buena pregunta de seguimiento) – mob

+4

@dgempesaw, para encontrar la versión del módulo, Perl necesita ejecutar el módulo. El módulo no puede ser no ejecutado si no es la versión correcta. – ikegami

0

se puede comprobar mediante la ejecución de esto en Linux:

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

Cuestiones relacionadas