В чем разница между% INC и @INC? - PullRequest
6 голосов
/ 26 июня 2009

В чем разница между %INC и @INC в Perl?

Ответы [ 3 ]

17 голосов
/ 26 июня 2009

Массив @ 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, потому что я использовал его для быстрого вывода этих двух значений).

5 голосов
/ 26 июня 2009

См. perldoc perlvar для @INC, %INC и всех других специальных переменных в Perl.

2 голосов
/ 26 июня 2009
...