in reply to Changing @INC before use'ing a module in a BEGIN block

perldoc lib
use lib "/opt/app/lib"; use Application::Module;

Replies are listed 'Best First'.
Re^2: Changing @INC before use'ing a module in a BEGIN block
by ig (Vicar) on Mar 27, 2009 at 06:58 UTC

    Sorry, I wasn't explicit about my objectives for modifying @INC: I want to exclude the usual directories from @INC when I load application modules (including customized versions of core modules) so that they can only be loaded from the application library or fail to load, and I want to leave @INC unmodified after including the application modules.

    What you suggest prepends the application library directory to @INC without removing all the other directories, so that a module might be loaded from the usual libraries if it were accidentally omitted from the application library, and it leaves @INC modified after the application module is included, so it is not what I am looking for.

      Package name space is global, it makes no sense to localize @INC

        I don't understand the connection between package namespace and @INC. Can you clarify?