2017-03-21 5 views
5

मामला उपयोगक्या यह बताने का कोई तरीका है कि कौन सा @INC पथ मॉड्यूल से लोड किया गया था?

मेरे सिस्टम प्रशासक सिर्फ rpm के माध्यम से और तथ्य यह है कि मैं सफलतापूर्वक use यह एक-लाइनर में, मुझे पता है कि जहां मॉड्यूल स्थापित किया गया था चाहते हैं कर सकते हैं के बावजूद एक पर्ल मॉड्यूल स्थापित किया।

मैं @INC में प्रत्येक पथ स्थानों के माध्यम से स्पष्ट रूप से कंघी कर सकता हूं, लेकिन क्या पर्ल के लिए मुझे यह बताने का कोई तरीका है कि यह सफलतापूर्वक मॉड्यूल को कहाँ से लोड करता है?

+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

पुन: अद्यतन, ऐसा लगता है कि '-l' पर्याप्त है – Zaid

+3

यदि आप' -m' को छोड़ देते हैं और आपके मॉड्यूल में कोई पीओडी नहीं है, तो आपको पथ के बजाय "कोई दस्तावेज नहीं मिला" मिलेगा। –

+2

ध्यान दें कि 'Foo/Mod.pm' कुंजी प्रारूप का भी विंडोज़ पर उपयोग किया जाता है। '($ Pkg = ~ s {::} {/} gr का उपयोग करना)। '.pm' पोर्टेबल है। (कुछ corroboration के लिए [if] (http://search.cpan.org/perldoc?if) मॉड्यूल देखें।) – ikegami

संबंधित मुद्दे

 संबंधित मुद्दे