2017-03-21 1 views
5

사용 사례는모듈이로드 된 @INC 경로를 알 수있는 방법이 있습니까?

내 시스템 관리자rpm를 통해 내가 성공적으로 use 그것을 한 줄에, 나는 모듈이 설치된 위치 알고 싶어 할 수 있다는 사실에도 불구하고 펄 모듈을 설치했습니다.

분명히 @INC에있는 각 경로 위치를 빗어 낼 수 있지만 Perl이 모듈을 성공적으로로드 한 위치를 알려주는 방법이 있습니까?

+2

'펄 -MData :: 덤퍼 -E'는 덤퍼 \ % INC'' –

+1

도 [필요없이 모듈의 절대 경로 결정] 참조 (http://stackoverflow.com/q/41707660/2173773 말할) –

답변

6

해시가 %INC입니다. 모듈로드 위치를 보여줍니다.

$ perl -MDBI -MData::Dumper -E'say Dumper \%INC' 
$VAR1 = { 
      'XSLoader.pm' => '/usr/share/perl5/XSLoader.pm', 
      'warnings/register.pm' => '/usr/share/perl5/warnings/register.pm', 
      'List/Util.pm' => '/usr/local/lib64/perl5/List/Util.pm', 
      'warnings.pm' => '/usr/share/perl5/warnings.pm', 
      'DBI.pm' => '/usr/lib64/perl5/vendor_perl/DBI.pm', 
      'overloading.pm' => '/usr/share/perl5/overloading.pm', 
      'Config.pm' => '/usr/lib64/perl5/Config.pm', 
      'Carp.pm' => '/usr/share/perl5/vendor_perl/Carp.pm', 
      'bytes.pm' => '/usr/share/perl5/bytes.pm', 
      'Exporter/Heavy.pm' => '/usr/share/perl5/vendor_perl/Exporter/Heavy.pm', 
      'Scalar/Util.pm' => '/usr/local/lib64/perl5/Scalar/Util.pm', 
      'strict.pm' => '/usr/share/perl5/strict.pm', 
      'Exporter.pm' => '/usr/share/perl5/vendor_perl/Exporter.pm', 
      'vars.pm' => '/usr/share/perl5/vars.pm', 
      'constant.pm' => '/usr/share/perl5/vendor_perl/constant.pm', 
      'overload.pm' => '/usr/share/perl5/overload.pm', 
      'DynaLoader.pm' => '/usr/lib64/perl5/DynaLoader.pm', 
      'Data/Dumper.pm' => '/usr/lib64/perl5/vendor_perl/Data/Dumper.pm', 
      'feature.pm' => '/usr/share/perl5/feature.pm' 
     }; 

업데이트 :는 사실, 쉬운 방법이있다.

+0

Re : update,'-l'로 충분하다. – Zaid

+3

'-m'을 생략하고 모듈에 POD가 없다면, 경로가 아니라 "문서가 없다"가 나온다. –

+2

'Foo/Mod.pm' 키 형식은 Windows에서도 사용됩니다. '($ pkg = ~ s {::} {/} gr)를 사용하십시오. '.pm'은 휴대 가능합니다. (약간의 확증을 얻으려면 [if] (http://search.cpan.org/perldoc?if) 모듈을 참조하십시오.) – ikegami

관련 문제