2017-03-21 30 views
5

Use caseBir modülün hangi @ yolunun yüklendiğini anlamanın bir yolu var mı?

Benim sysadmin sadece rpm yoluyla ve başarıyla use bunun tek poşetine, ben modül yüklendiği nerede olduğunu bilmek istiyorum gerçeğine rağmen Perl modülünü yüklü.

Açıkça, yol konumlarının her birini @INC içinde tarayabilirim, ancak Perl'ün modülün yerini başarıyla yüklediğini söylemenin bir yolu var mı?

+2

'Perl -MData :: Damper -E 'Damper \% INC'' –

+1

da [gerektirir kullanmadan modülünün mutlak yolunu belirlemek] (bkz http://stackoverflow.com/q/41707660/2173773 demek) –

cevap

6

%INC hash işte budur. Bir modülün yüklendiği yeri gösterir.

$ 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' 
     }; 

Güncelleme: Aslında daha kolay bir yöntem var.

+0

Re: güncelleme, '-l' yeterli görünüyor – Zaid

+3

Eğer '-m 'seçeneğini çıkarırsanız ve modülünüz POD içermezse, yoldan ziyade" belge bulunamadı "alırsınız. –

+2

'Foo/Mod.pm' anahtarının Windows'da da kullanıldığını unutmayın. '($ Pkg = ~ s {::} {/} gr kullanarak. '.pm' taşınabilir. (Bazı doğrulama için [if] (http://search.cpan.org/perldoc?if) modülüne bakın.) – ikegami

İlgili konular