EPIC pollutes @INC in adding resource’s dir

llaporte53 wrote on Fri Sep 21 17:48:12 MEST 2007:
EPIC pollutes @INC in adding resource’s directory

When running or debugging a Perl module, EPIC pollutes @INC with the resource
directory. It adds the directory in the beginning of the list. In consequence,
you can’t import a standard Perl module (like Config.pm) if you have a
module of the same name in your directory.
I don’t known the real reason of adding the resource directory when ‘.’
is already in @INC!

For example, I have a package MyPackage (It’s a directory) with a module
named Config.pm and another named MyModule.pm that uses Config standard
Perl module (but not MyPackage::Config). When you run MyModule.pm, the instruction
‘use Config;’ imports MyPackage::Config!

I have the same problem when debugging a Perl script because the debugger
imports Config. See whats_in_inc.pl below…

MyModule.pm and Config.pm are in MyPackage directory.
------- MyModule.pm -------

# @author: Laurent LAPORTE
# @summary: Module using Config, with a *main* (for testing).
# @date: 2007-09-21

use strict;

package MyPackage::MyModule;

use Config;

sub printArchname() {
    print "archname is " . $Config{archname} . "\n"; # Ooops : Global symbol
"%Config" requires explicit package name...

package main;



------- Config.pm -------

# @author: Laurent LAPORTE
# @summary: Config module in MyPackage package.
# @date: 2007-09-21

use strict;

package MyPackage::Config;

sub getConfig() {
    return "The config of MyPackage";


------- whats_in_inc.pl -------
use strict;
print "'$_'\n" foreach (@INC);

The problem doesn’t exists in EPIC v0.5.33, I don’t know if it exists
between 0.5.33 and 0.5.35, but it exists in v0.5.36 and v0.5.40…
eclipse v3.2 or v3.3
perl v5.8.8 built for MSWin32-x86-multi-thread

Note: The above is an archived snapshot of a forum thread. Use the original thread at sf.net to post comments.