Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: current path in a package?

by samarzone (Pilgrim)
on Dec 28, 2010 at 08:06 UTC ( #879396=note: print w/ replies, xml ) Need Help??

in reply to current path in a package?

If you are using require with a physical path to the module file you already know the path. If you are concerned with absolute path rather than relative one you can use getcwd() prepended to the relative path mentioned in the require statement.

If you will use the module rather than requireing it you will find absolute path of module file into %INC hash variable with key as the module name.

use lib '/www/somedir/' use test; print $INC{test};
- Samar

Comment on Re: current path in a package?
Select or Download Code
Replies are listed 'Best First'.
Re^2: current path in a package?
by ELISHEVA (Prior) on Dec 28, 2010 at 08:34 UTC

    Tilly suggested using __FILE__ because using cwd is not necessarily reliable. A script might have changed the current directory after it has been loaded. Additionally, a module can be loaded from any of the paths in @INC and may never have been reachable via the current directory in the first place.

    Note: __FILE__ only works for packages defined in the current file. If you want to find the location of an arbitrary package, look up the package in %INC. %INC contains a set of entries like this: => '/usr/share/perl/5.8/' => '/usr/share/perl/5.8/' List/ => '/usr/lib/perl/5.8/List/'

    In %INC the module name gets ".pm" tacked onto the end and all of the '::' are replaced by '/'. I believe this transformation is consistent across platforms, so to look up the location of an arbitrary package:

    my $k = $module_name; $k =~ s/::/\//g; $k .= '.pm'; my $path = $INC{$k};

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://879396]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (11)
As of 2016-02-09 16:21 GMT
Find Nodes?
    Voting Booth?

    How many photographs, souvenirs, artworks, trophies or other decorative objects are displayed in your home?

    Results (320 votes), past polls