You are viewing the version of this documentation from Perl 5.40.0. View the latest version

The array @INC contains the list of places that the do EXPR, require, or use constructs look for their library files. It initially consists of the arguments to any -I command-line switches, followed by the default Perl library, probably /usr/local/lib/perl. Prior to Perl 5.26, . -which represents the current directory, was included in @INC; it has been removed. This change in behavior is documented in PERL_USE_UNSAFE_INC and it is not recommended that . be re-added to @INC. If you need to modify @INC at runtime, you should use the use lib pragma to get the machine-dependent library properly loaded as well:

use lib '/mypath/libdir/';
use SomeMod;

You can also insert hooks into the file inclusion system by putting Perl code directly into @INC. Those hooks may be subroutine references, array references or blessed objects. See "require" in perlfunc for details.