Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

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 CommonSubs.pm and placed in location C:\DIR1\DIR2\DIR3\CommonSubs.pm.

My all other Files are also located in the same location. E.g. File1.pl calling CommonSubs.pm is located at C:\DIR1\DIR2\DIR3\File1.pl.

CommonSubs.pm 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\File1.pl while in d: Directory, it throws an error.

While when I cd to C:\DIR1\DIR2\DIR3\ Directory and then call File1.pl 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 File1.pl (Giving it's complete path) it is executed without error

Comment on Calling Subroutines From Another File: Path Problem
Re: Calling Subroutines From Another File: Path Problem
by LanX (Canon) 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 (Monsignor) on Jan 08, 2013 at 06:53 UTC

    Here are some options:

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

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

      perl -IC:/DIR1/DIR2/DIR3 File.pl
    • 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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1012160]
Approved by davido
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2014-09-20 01:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (151 votes), past polls