%INC和@INC有什么区别?

时间:2009-06-25 21:44:20

标签: perl arrays perlvar

Perl中%INC@INC之间有什么区别?

3 个答案:

答案 0 :(得分:17)

@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',
'.'

和%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包含Data :: Dumper,因为我用它来快速转储这两个值)。

答案 1 :(得分:5)

请参阅perldoc perlvar了解@INC%INC以及Perl中的所有其他特殊变量。

答案 2 :(得分:2)