kirk123 has asked for the wisdom of the Perl Monks concerning the following question:

Hi I am working on a Windows2000 platform. The problem is everytime I execute my perl script on command line I get this error: Can't locate File/Find.pm in @INC (@INC contains: c:\h\coe\comp\perl\lib\site c: \h\coe\comp\perl\lib c:\perl\lib c:\perl\lib\site c:\perl\lib\site .) at Persona lCreateList.pl line 9. BEGIN failed--compilation aborted at PersonalCreateList.pl line 9. Find.pm is actually located in "C:\h\COTS\Perl\lib" How can I update the special array @INC to point to this library? --Thanks

Replies are listed 'Best First'.
Re: Perl Library error
by BrowserUk (Patriarch) on Jul 09, 2003 at 00:19 UTC

    The short answer to your question is

    use lib 'C:\h\COTS\Perl\lib';

    That will probably fix you up for now, but please read the longer answer as well.

    Longer answer:

    Why? Why on earth are you using so many different pairs of libpaths?

    If you are comfortable with saying to yourself "I know what I am doing and why", then by all means carry on.

    But unless all three versions of perl installed at those different locations is the same version -- whether that version is a binary distribution from AS or Indigo, or if they are all home compiled from the same set of sources and with the same compile-time options -- then you are creating a potential nightmare of elusive bugs and failures.

    And if they are all the same version, then why not consolidate on one location and one standard libpath structure?


    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller


Re: Perl Library error
by demerphq (Chancellor) on Jul 09, 2003 at 00:31 UTC

    In general I agree with BrowserUk, but you may also find that setting the enviornment variable PERL5LIB will sort you out as well. Incidentally File::Find should live in you standard distro paths, and as such you shouldnt have this problem at all.


    ---
    demerphq

    <Elian> And I do take a kind of perverse pleasure in having an OO assembly language...
Re: Perl Library error
by leriksen (Curate) on Jul 09, 2003 at 01:42 UTC
    Yet Another Technique
    you can start your script with -I flags specifying paths to add to @INC
    perl -I<non-standard-path> -I<another> script.pl

    IIRC, this appends to the @INC array
    Of course, opinion varies wildly on whether -I is actually a good idea.