What is the difference between %INC
and @INC
in Perl?
views:
300answers:
3
+13
A:
The @INC array holds all the file system paths where perl will be looking for modules when you use or require them.
After use or require, the %INC hash will contain the loaded modules and where they were loaded from.
Examples from my laptop:
@INC:
'/etc/perl',
'/usr/local/lib/perl/5.10.0',
'/usr/local/share/perl/5.10.0',
'/usr/lib/perl5',
'/usr/share/perl5',
'/usr/lib/perl/5.10',
'/usr/share/perl/5.10',
'/usr/local/lib/site_perl',
'.'
and %INC:
'warnings/register.pm' => '/usr/share/perl/5.10/warnings/register.pm',
'bytes.pm' => '/usr/share/perl/5.10/bytes.pm',
'XSLoader.pm' => '/usr/lib/perl/5.10/XSLoader.pm',
'Carp.pm' => '/usr/share/perl/5.10/Carp.pm',
'Exporter.pm' => '/usr/share/perl/5.10/Exporter.pm',
'warnings.pm' => '/usr/share/perl/5.10/warnings.pm',
'overload.pm' => '/usr/share/perl/5.10/overload.pm',
'Data/Dumper.pm' => '/usr/lib/perl/5.10/Data/Dumper.pm'
(%INC contains Data::Dumper because I used it to quickly dump those two values).
innaM
2009-06-25 21:48:40
@INC can also include coderefs for hooking into require/use.
ysth
2009-06-25 21:55:37
+4
A:
See perldoc perlvar for @INC
, %INC
and all other special variables in Perl.
Sinan Ünür
2009-06-26 03:39:36