2011-01-17 9 views
9

otrzymuję ten błąd podczas uruchamiania mojego kodu Perlanie można zlokalizować pliku/Glob.pm w @ INC (@ INC zawiera: D:./Tools/lib) na linii directory.pl 2

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

line 2: @files=<*>;

kiedy uruchomić polecenie, otrzymuję,

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

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

Więc myślę, że moduł File :: Glob jest zainstalowany?

+4

Jest zainstalowany, dobrze. Twój '@ INC' nie wskazuje jednak na to. –

+0

Dzięki, jakoś pomyślałem, że będzie wiedział, jak przeszukać pod ścieżkę pod D:/tools/lib – freshWoWer

+3

Dlaczego perldoc go znaleźć, jeśli nie jest w @INC – justintime

Odpowiedz

16

należy ustawić poprawnie po instalacji Perla. Kiedy nie pasuje do twojej konfiguracji, wydajesz się, że coś zawiedli.

Jednakże, jeśli aktualna wartość @INC nie pasuje do Twoich potrzeb, masz różne opcje:

  1. Dodaj D:\tools\lib\perl\510\ do zmiennej środowiskowej PERL5LIB (lub PERLLIB jeśli to nie działa)
  2. Określ @INC na starcie: perl -I D:\tools\lib\perl\510\
  3. Zamiast pisać use libname, można napisać use path/to/libname
  4. Korzystanie z BEGIN blok przed zatwierdzeniem sprawozdania use:

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

Zobacz również http://perldoc.perl.org/perlvar.html na krótkim wprowadzeniem.

+0

rozwiązany przy użyciu pierwszej sugestii; i dzięki za dostarczenie tak wielu alternatywnych! "Jest więcej niż jeden sposób na zrobienie tego" - tak myślę :) – freshWoWer

+0

Domyślam się, że powinieneś powstrzymać się od używania ukośników w kodzie Perla pod Windows, ponieważ te "\ t" ',' "\ 510" 'etc mogą być rozszerzone do niektórych dziwnych postaci. Używanie ukośników odwrotnych byłoby bardziej odpowiednie, jak sądzę. –

Powiązane problemy