当我想提供包含模块的目录时,我编写:
perl -Ilib -Isome/dir script.pl我应该也包括archname目录吗?还是自动扫描?
来自Makefile
{APP_ROOT}/local/lib/perl5/${shell perl -MConfig -e 'print $$Config{archname}'}UPD
perl -V输出:
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0发布于 2017-04-28 13:58:01
默认情况下,archname包括在@INC中,如果它存在:
perl -MConfig -E 'say $_ for ($Config{archname}, @INC)'
x86_64-linux
/home/user/perl5/perlbrew/perls/perl-5.24.1/lib/site_perl/5.24.1/x86_64-linux
/home/user/perl5/perlbrew/perls/perl-5.24.1/lib/site_perl/5.24.1
/home/user/perl5/perlbrew/perls/perl-5.24.1/lib/5.24.1/x86_64-linux
/home/user/perl5/perlbrew/perls/perl-5.24.1/lib/5.24.1如果存在UPD,则添加:
perl -Isomedir -e 'local $"="\n"; print "@INC"'
somedir
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0mkdir -p somedir/x86_64-linux perl -Isomedir -e 'local $"="\n"; print "@INC"'
somedir/x86_64-linux
somedir
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux
/home/kes/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0发布于 2017-04-28 15:12:36
是的,如果存在,则在添加父非arch目录时,arch子目录将被添加到@INC。
基线:
$ perl -E'say for @INC' | wc -l
5通过-I添加
$ perl -Ilib -E'say for @INC' | head -n -5
lib/5.24.0/x86_64-linux-thread-multi
lib/5.24.0
lib通过PERL5LIB添加
$ PERL5LIB=lib perl -E'say for @INC' | head -n -5
lib/5.24.0/x86_64-linux-thread-multi
lib/5.24.0
lib通过lib.pm添加:
$ perl -E'use lib qw( lib ); say for @INC' | head -n -5
lib/5.24.0/x86_64-linux-thread-multi
lib/5.24.0
lib通过mylib.pm添加:
$ perl -E'use mylib; say for @INC' | head -n -5
/.../lib/5.24.0/x86_64-linux-thread-multi
/.../lib/5.24.0
/.../lib如果您直接将它们添加到中,则不添加它们
$ perl -E'unshift @INC, "lib"; say for @INC' | head -n -5
libhttps://stackoverflow.com/questions/43681925
复制相似问题