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

freshWoWer picture freshWoWer · Jan 17, 2011 · Viewed 20.7k times · Source

I get this error when running my perl code

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

line 2: @files=<*>;

When i run the command, I get,

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

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

So I think the File::Glob module is installed?

Answer

eckes picture eckes · Jan 17, 2011

@INC should be set correctly upon installation of Perl. When it doesn't match your configuration, you seem to have messed up something.

However, if the current value of @INC doesn't fit your needs, you have various options:

  1. Add D:\tools\lib\perl\510\ to the environment variable PERL5LIB (or PERLLIB if this doesn't work)
  2. Specify @INC on startup: perl -I D:\tools\lib\perl\510\
  3. Instead of writing use libname, you can write use path/to/libname
  4. Using a BEGIN block before the use statements:

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

See also http://perldoc.perl.org/perlvar.html for a short introduction.