2011-01-17 6 views
9

consigo este error cuando se ejecuta el código PerlNo se puede localizar archivos/Glob.pm en @INC (@INC contiene: D:./Tools/lib) en la línea 2 directory.pl

Can't locate File/Glob.pm in @INC (@INC contains: D:/tools/lib .) at directory.pl line 2.

line 2: @files=<*>;

Cuando funciono con el comando, consigo,

Y:\perl\perl>perldoc -l File::Glob

D:\tools\lib\perl\510\File\Glob.pm

¿Entonces creo que el módulo File :: Glob está instalado?

+4

Está instalado, está bien. Sin embargo, su '@ INC' no apunta a eso. –

+0

Gracias, de alguna manera pensé que sabría cómo buscar en el subespacio en D:/tools/lib – freshWoWer

+3

¿Por qué perldoc lo encuentra si no está en @INC – justintime

Respuesta

16

@INC se debe configurar correctamente al instalar Perl. Cuando no coincide con su configuración, parece que ha estropeado algo.

Sin embargo, si el valor actual de @INC no se ajusta a sus necesidades, usted tiene varias opciones:

  1. Añadir D:\tools\lib\perl\510\ a la variable de entorno PERL5LIB (o PERLLIB si esto no funciona)
  2. Especificar @INC en el arranque: perl -I D:\tools\lib\perl\510\
  3. en lugar de escribir use libname, puede escribir use path/to/libname
  4. El uso de un bloque de BEGIN antes de las declaraciones use:

    BEGIN { 
        push @INC,"D:\tools\lib\perl\510\"; 
    } 
    

Véase también http://perldoc.perl.org/perlvar.html para una breve introducción.

+0

resuelto con la primera sugerencia; y gracias por proporcionar tantas alternativas! "Hay más de una forma de hacerlo" - Supongo :) – freshWoWer

+0

Supongo que debe abstenerse de usar barras diagonales en el código Perl en Windows, ya que estos '" \ t "', '" \ 510 "' etc. pueden expandirse a algunos personajes extraños. Usar barras diagonales inversas sería más apropiado, supongo. –

Cuestiones relacionadas