Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Calling Subroutines From Another File: Path Problem

by anshumangoyal (Scribe)
on Jan 08, 2013 at 05:46 UTC ( #1012160=perlquestion: print w/replies, xml ) Need Help??
anshumangoyal has asked for the wisdom of the Perl Monks concerning the following question:

I am having 20 Subroutines which are common to almost 30+ files. Instead of adding all these subroutines in each file I created a file and placed in location C:\DIR1\DIR2\DIR3\

My all other Files are also located in the same location. E.g. calling is located at C:\DIR1\DIR2\DIR3\ has a line which says "Package CommonSubs"

Problem is when I am calling any of my file from an other location, it gives me error. e.g. I call Perl C:\DIR1\DIR2\DIR3\ while in d: Directory, it throws an error.

While when I cd to C:\DIR1\DIR2\DIR3\ Directory and then call it runs fine.

I know this is the issue with Path's but how to make it generic so that from where ever I call this (Giving it's complete path) it is executed without error

  • Comment on Calling Subroutines From Another File: Path Problem

Replies are listed 'Best First'.
Re: Calling Subroutines From Another File: Path Problem
by LanX (Bishop) on Jan 08, 2013 at 06:42 UTC
    From your description it's not clear how you include your .pm file...

    see Perl Modules to learn what modules are.

    see use for the most common way to include them.

    see @INC for how to setup the places where "use" constructs look for their library files.

    Cheers Rolf

Re: Calling Subroutines From Another File: Path Problem
by Athanasius (Chancellor) on Jan 08, 2013 at 06:53 UTC

    Here are some options:

    • Place use lib 'C:DIR1/DIR2/DIR3'; near the beginning of

    • Invoke perl with a -I command-line option:

      perl -IC:/DIR1/DIR2/DIR3
    • Add C:/DIR1/DIR2/DIR3 to the system environment variable PERL5LIB

    See perlrun.

    Hope that helps,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1012160]
Approved by davido
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2018-01-19 04:17 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (215 votes). Check out past polls.