%INC和@INC有什么区别?

joe*_*joe 7 arrays perl perlvar

%INC@INCPerl有什么区别?

inn*_*naM 18

@INC数组保存所有的文件系统路径,其中Perl会寻找当您使用或要求他们模块.

在使用或要求之后,%INC哈希将包含已加载的模块以及它们的加载位置.

笔记本电脑的例子:

@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',
'.'
Run Code Online (Sandbox Code Playgroud)

和%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'
Run Code Online (Sandbox Code Playgroud)

(%INC包含Data :: Dumper,因为我用它来快速转储这两个值).

  • @INC还可以包含用于挂钩到require/use的coderefs. (3认同)

Sin*_*nür 6

的perldoc perlvar@INC,%INC并且在Perl所有其他特殊变量.