मैं स्थापित CPAN मॉड्यूल की सूची कैसे प्राप्त करूं?


88

कोशिश करने के अलावा

perldoc <module name>

किसी भी CPAN मॉड्यूल के लिए व्यक्तिगत रूप से जो मेरे फैंसी लेता है या फ़ाइल सिस्टम के माध्यम से जा रहा है और निर्देशिकाओं को देखकर मुझे पता नहीं है कि हमने क्या मॉड्यूल स्थापित किया है।

हर CPAN मॉड्यूल की एक बड़ी सूची स्थापित करने का सबसे आसान तरीका क्या है? कमांड लाइन से या अन्यथा।


मैं pmtools का उपयोग करने का सुझाव दे सकता हूं , विशेष रूप से pminst जो नियमित अभिव्यक्तियों को स्वीकार करता है।
लुकमडो

perl-pmtools आपके लिए अच्छे उपकरण हैं।
जस्सीवंग

क्या आप जानना चाहते हैं कि मॉड्यूल क्या स्थापित हैं, या क्या वितरण स्थापित हैं?
टिम बन्स

4
मैंने cpan -lखिड़कियों पर अपने लिए उपयोगी पाया ।
शून्य

1
यह उपयोगी हो सकता है:instmodsh
रवि

जवाबों:


65

यह पर्ल एफएक्यू में उत्तर दिया गया है, जिसका उत्तर जल्दी से मिल सकता है perldoc -q installed । संक्षेप में, यह उपयोग ExtUtils::Installedया उपयोग करने के लिए नीचे आता है File::Find, दोनों के वेरिएंट को इस धागे में पहले कवर किया गया है।

आप FAQ प्रविष्टि "मुझे कैसे पता चलेगा कि मेरे सिस्टम पर कौन से मॉड्यूल स्थापित हैं?" perlfaq3 में। आप perlfaq में देख कर सभी FAQ उत्तरों की सूची देख सकते हैं


36
यह ओपी से इतना अधिक अनुरोध करता है कि यह वास्तव में बेकार है।
जस्टिन

2
cpan -l मैं जिस भी डायरेक्टरी से इसे चलाता हूं उसकी पुनरावर्ती खोज कर रहा हूं। क्या उस कमांड लाइन से ExtUtils::Installedकंस्ट्रक्टर के skip_cwdविकल्प को पास करने का कोई तरीका है ?
मार्क रीड

10
अकसर किये गए सवाल का उपयोग करने के लिए कहते हैं, cpan -lलेकिन यह RHEL6 पर काम नहीं करता है, और /usr/bin/cpan -lत्रुटि फेंकता है Unknown option: l
स्टीफन लासिवस्की

1
$ perldoc perllocal | grep मॉड्यूल $ perldoc perllocal | grep -E 'VERSION | मॉड्यूल'
caot

सादे पाठ आउटपुट प्राप्त करने के लिए perldoc -t perllocal का उपयोग करें, अन्यथा grep एम्बेडेड ctrl वर्णों के कारण काम नहीं कर सकता है
user333869

35
perldoc perllocal

संपादित करें: CPAN FAQ में इसके बारे में थोड़ी (अधिक) जानकारी है


2
एफएक्यू के लिंक के लिए धन्यवाद। दुर्भाग्य से मैं नहीं जानता कि स्थापित सभी मॉड्यूल वापस आ रहे हैं। दिनांक :: Calc वहाँ भी नहीं दिखा।
डेविड मैकलॉघलिन

26

perldoc -q installed

दावा है कि cpan -lयह चाल चलेगा, हालांकि यह मेरे लिए काम नहीं कर रहा है। अन्य विकल्प:

cpan -a

स्थापित संकुल की एक अच्छी सूची को बाहर थूकता है और उन्हें एक फ़ाइल में लिखने का अच्छा दुष्प्रभाव है।


2
रिकॉर्ड के लिए, cpan -lकाम करता है (या CPAN v2.05 के साथ मेरे लिए करता है)। cpan -aवास्तव में सुंदर है।
विलियम टरेल

23

यह ध्यान देने योग्य है कि पेरडल पेरोलोकल केवल सीपीएएन के माध्यम से स्थापित मॉड्यूल पर रिपोर्ट करेगा। यदि कोई व्यक्ति मैन्युअल रूप से मॉड्यूल स्थापित करता है, तो यह उन्हें नहीं मिलेगा। इसके अलावा, यदि आपके पास मॉड्यूल स्थापित करने वाले कई लोग हैं और perllocal.pod स्रोत नियंत्रण में है, तो लोग गलत तरीके से विवादों को हल कर सकते हैं और सूची को दूषित कर सकते हैं (उदाहरण के लिए, यह काम पर यहां हुआ है)।

अफसोस, समाधान फ़ाइल के साथ @INC के माध्यम से चलना प्रतीत होता है :: खोजें या कुछ इसी तरह। हालाँकि, यह केवल मॉड्यूल नहीं ढूंढता है, यह वितरण में संबंधित मॉड्यूल भी ढूंढता है। उदाहरण के लिए, यह TAP :: Harness और TAP :: Parser का परीक्षण के वास्तविक वितरण नाम के अलावा रिपोर्ट करेगा :: Harness (यह मानते हुए कि आपके पास संस्करण 3 या उससे ऊपर है)। आप संभावित रूप से उन्हें वितरण नामों से मिला सकते हैं और उन नामों को छोड़ सकते हैं जो मेल नहीं खाते हैं, लेकिन फिर आप स्थानीय रूप से निर्मित और स्थापित मॉड्यूल को त्याग सकते हैं।

मेरा मानना ​​है कि ब्रायन डी फ़ोय के बैकपैन इंडेक्सिंग कार्य को .pm फ़ाइल पर हाथ करने के लिए कोड माना जाता है और यह वितरण का अनुमान लगाने का प्रयास करेगा, लेकिन यह भी कई बार विफल हो जाता है क्योंकि पैकेज में ऐसा क्या है जो आवश्यक रूप से स्थापित नहीं है (देखें Devel :: Cover :: एक उदाहरण के लिए इंक)।


1
मुझे नहीं लगता कि मुझे उस एक के लिए बैकपैन कैटलॉग गन बाहर खींचने की जरूरत है। कुछ ऐसा ही मैं टेस्ट के साथ करता हूं :: इसे ०२ पैकेज में जो डिस्ट्रो पाता है उसे पूरा करने के लिए प्ररेक काफी हो सकता है। हालांकि मॉड्यूल फ़ाइलों को सूचीबद्ध करने की तुलना में यह थोड़ा मुश्किल है, और कैटलॉग अभी तक इसे संभालने के करीब नहीं है।
brian d foy

2
अल्पविकसित परीक्षण से (कुछ मेयर में "मे-एन इंस्टॉल" कर रहा हूं, जो चारों ओर बिछ रहा है), किसी भी मेकमेकर-आधारित मॉड्यूल का "मेक इनस्टॉल" चरण पेरोलोकल अद्यतन करेगा। यह सीधे CPAN के माध्यम से स्थापित करने के लिए विशिष्ट नहीं है।
rjray

1
मुझे लगता है कि Dist :: सर्वेयर अभी भी इस सवाल का जवाब देने के लिए सबसे अच्छा उपकरण है कि "उस लाइब्रेरी में क्या वितरण स्थापित किए गए हैं?"। देखें इस प्रस्तुति अधिक जानकारी के लिए। गिट रेपो में एक आसान-से-उपयोग वाला थका हुआ संस्करण है ।
टिम बन्स

20
$ for M in `perldoc -t perllocal|grep Module |sed -e 's/^.*" //'`; do V=`perldoc -t perllocal|awk "/$M/{y=1;next}y" |grep VERSION |head -n 1`; printf "%30s %s\n" "$M" "$V"; done |sort
              Class::Inspector     *   "VERSION: 1.28"
                    Crypt::CBC     *   "VERSION: 2.33"
               Crypt::Rijndael     *   "VERSION: 1.11"
                    Data::Dump     *   "VERSION: 1.22"
                   DBD::Oracle     *   "VERSION: 1.68"
                           DBI     *   "VERSION: 1.630"
                   Digest::SHA     *   "VERSION: 5.92"
           ExtUtils::MakeMaker     *   "VERSION: 6.84"
                       install     *   "VERSION: 6.84"
               IO::SessionData     *   "VERSION: 1.03"
               IO::Socket::SSL     *   "VERSION: 2.016"
                          JSON     *   "VERSION: 2.90"
                  MIME::Base64     *   "VERSION: 3.14"
                  MIME::Base64     *   "VERSION: 3.14"
                   Mozilla::CA     *   "VERSION: 20141217"
                   Net::SSLeay     *   "VERSION: 1.68"
                        parent     *   "VERSION: 0.228"
                  REST::Client     *   "VERSION: 271"
                    SOAP::Lite     *   "VERSION: 1.08"
                  Task::Weaken     *   "VERSION: 1.04"
                 Term::ReadKey     *   "VERSION: 2.31"
                Test::Manifest     *   "VERSION: 1.23"
                  Test::Simple     *   "VERSION: 1.001002"
                  Text::CSV_XS     *   "VERSION: 1.16"
                     Try::Tiny     *   "VERSION: 0.22"
                   XML::LibXML     *   "VERSION: 2.0108"
         XML::NamespaceSupport     *   "VERSION: 1.11"
                XML::SAX::Base     *   "VERSION: 1.08"

2
यह उन लोगों के लिए अच्छी तरह से काम करता है जिनके पास cpan स्थापित नहीं है।
pdwalker

सच में जवाब दिया। यह आरएचईएल वितरण के लिए भी काम करता है।
क्रिस्टीना

4
मुझे मिला:No documentation found for "perllocal".
लुइस ए। फ्लोरिट

मेरी अपेक्षा (लगभग 20 सेकंड या मेरी मशीन पर) चलाने की तुलना में अधिक समय लगा, लेकिन यह त्रुटिपूर्ण काम किया! बहुत बढ़िया जवाब।
हंस गोल्डमैन

19

आप ExtUtils-Installed की कोशिश कर सकते हैं , लेकिन यह केवल .packlists में दिखता है , इसलिए यह उन मॉड्यूलों को याद कर सकता है जिन्हें लोगों ने चीजों में स्थानांतरित किया था@INC हाथ से ।

मैंने ऐप-मॉड्यूल-लिस्टर लिखा एक दोस्त के लिए था जो एक गैर-शेल वेब होस्टिंग खाते पर CGI स्क्रिप्ट के रूप में ऐसा करना चाहता था। आप सरल मॉड्यूल फ़ाइल लेते हैं और इसे एक फ़ाइल नाम के रूप में अपलोड करते हैं जिसे आपका सर्वर CGI स्क्रिप्ट के रूप में मानेगा। स्टैंडर्ड लाइब्रेरी के बाहर इसकी कोई निर्भरता नहीं है। कोड के रूप में इसका उपयोग करें या चोरी करें।

यह मॉड्यूल और उनके संस्करणों की एक सूची आउटपुट करता है:

टाई :: चक्र 1.15
टाई :: IxHash 1.21
टाई :: टॉगल 1.07
टाई :: ToObject 0.03
समय :: CTime 99.062201
समय :: DaysInMonth 99.1117
समय :: युग 0.02
समय :: फजी 0.34
समय :: जूलियनडे 2003.1125
समय :: ParseDate 2006.0814
समय :: समयक्षेत्र 2006.0814

मैं इसे cpanउपकरण में एक सुविधा के रूप में जोड़ने का अर्थ लगा रहा हूं, इसलिए मैं भी यही करूंगा। [समय बीत जाता है] और, अब मेरे पास एक -lस्विच है cpan। मेरे पास रिलीज करने से पहले कुछ और चीजें हैं, लेकिन यह जीथब में है । यदि आप उसके लिए इंतजार नहीं करना चाहते हैं, तो आप बस -aएक ऑटोबंडल बनाने के लिए स्विच की कोशिश कर सकते हैं , हालांकि यह सूची के आसपास कुछ पॉड डालता है।

सौभाग्य;


12

यहाँ एक स्क्रिप्ट है जो चाल होगी:

use ExtUtils::Installed;

my $inst = ExtUtils::Installed->new();
my @modules = $inst->modules();
foreach $module (@modules){
       print $module ." - ". $inst->version($module). "\n";
}

=head1 ABOUT

This scripts lists installed cpan modules using the ExtUtils modules

=head1 FORMAT

Prints each module in the following format
<name> - <version>

=cut

आरएचईएल 6.9 के तहत, यह स्क्रैप केवल निम्नलिखित प्रिंट करता है: Perl - 5.10.1 मॉड्यूल सूचीबद्ध नहीं हैं।
हंस डेरगन

9

मुझे इसके लिए CPAN 'r' कमांड का उपयोग करना पसंद है। आप पुराने स्टाइल के साथ CPAN शेल में जा सकते हैं:

sudo perl -MCPAN -e shell

या, अधिकांश नई प्रणालियों पर, 'cpan' कमांड होती है, इसलिए यह कमांड आपको शेल में मिलेगा:

sudo cpan

(आपको आम तौर पर इसे चलाने के लिए 'sudo' का उपयोग करना होता है, या इसे चलाने से पहले 'su -' का उपयोग रूट करने के लिए करना होता है, जब तक कि आपके पास इसे सामान्य उपयोगकर्ता के रूप में चलाने के लिए cpan सेट अप न हो, लेकिन रूट के रूप में इंस्टॉल करें। यदि आपके पास इस मशीन पर रूट नहीं है, तो आप इस जानकारी का पता लगाने के लिए CPAN शेल का उपयोग कर सकते हैं, लेकिन आप मॉड्यूल को स्थापित करने में सक्षम नहीं होंगे, और आपको पहली बार सेटअप के दौरान थोड़ा सा गुजरना होगा चलाओ।)

फिर, एक बार जब आप cpan शेल में होते हैं, तो आप सभी स्थापित मॉड्यूल और उनके संस्करणों की रिपोर्ट करने के लिए 'r' कमांड का उपयोग कर सकते हैं। तो, "cpan>" प्रॉम्प्ट पर, 'r' टाइप करें। यह सभी स्थापित मॉड्यूल और उनके संस्करणों को सूचीबद्ध करेगा। उपयोग '?' कुछ और मदद पाने के लिए।


1
वास्तव में 'आर' आपको पुनर्स्थापना सिफारिशें देता है - यानी आपके इंस्टॉल के सभी मॉड्यूल जिनके पास CPAN का एक नया संस्करण है। जब तक आपका इंस्टॉल बहुत पुराना न हो जाए, यह पूरी सूची नहीं होगी।
EvdB

मेरा 'र' हमेशा कुछ भी नहीं के बगल में रिपोर्ट करता है क्योंकि मैं अनिवार्य रूप से अपग्रेड करता हूं जो मुझे याद दिलाता है ... मैंने आज तक उन्नत नहीं किया है।
स्किप्पॉपी

3
-R recompiles सामान। एक सूची प्राप्त करने के लिए, नवीनतम स्रोतों को आज़माने या डाउनलोड करने और नए -l स्विच के साथ खेलने के लिए, बस इस उत्तर के लिए जोड़ा गया। :)
ब्रायन डी फॉय

1
sudoयहाँ क्यों ? यह पूरी तरह से अनावश्यक है।
अरस्तू पगलतज़िस

2
'cr' कमांडलाइन तर्क को 'cpan' और 'r' कमांड के बीच cpan शेल में अंतर पर ध्यान दें :)
EvdB

7

यहाँ यह वास्तव में हैक करने का तरीका है * निक्स में, आपको कुछ सामान मिलेगा जिसकी आपको वास्तव में परवाह नहीं है (यानी: चेतावनियाँ :: रजिस्टर आदि), लेकिन यह आपको हर उस .pm फ़ाइल की एक सूची देनी चाहिए जो इसके माध्यम से सुलभ है। पर्ल।


for my $path (@INC) {
    my @list = `ls -R $path/**/*.pm`;
    for (@list) {
        s/$path\///g;
        s/\//::/g;
        s/\.pm$//g;
        print;
    }
}


2
इससे उसे वह नहीं मिलेगा जो वह चाहता है। यह संबंधित फाइलों को समूह द्वारा वितरित नहीं करेगा जिसका वे हिस्सा हैं, और यह पर्ल से ही सभी कोर * .pm फाइलों को सूचीबद्ध करेगा।
rjray

7
perl -MFile::Find=find -MFile::Spec::Functions -Tlwe 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC'

यह बहुत अच्छा है क्योंकि यह स्पष्ट रूप से प्रत्येक *.pmमॉड्यूल को पूर्ण पथ दिखाता है । आप कई डुप्लिकेट देख सकते हैं ...
19 '

7

आप instmodshअपने टर्मिनल में कमांड का उपयोग करके आपके द्वारा सिस्टम में स्थापित पर्ल मॉड्यूल की सूची प्राप्त कर सकते हैं। यह आउटपुट बढ़ाने के लिए आपसे तीन विकल्प पूछेगा:

   l            - List all installed modules
   m <module>   - Select a module
   q            - Quit the program

5

लिनक्स / यूनिक्स पर मैं इस सरल कमांड का उपयोग करता हूं:

perl -e 'print qx/find $_ -name "*.pm"/ foreach ( @INC );' 

यह सभी फ़ोल्डर को स्कैन करता है @INCऔर किसी भी * .pm फ़ाइल के लिए दिखता है।


धन्यवाद! बहुत उपयोगी।
not2qubit

धन्यवाद! यह शायद सबसे अधिक पर्ल है जो मुझे कभी भी इस तरह के एक सक्सेज एक्सप्रेशन के साथ सिखाया गया है।
इव्ड

4

निम्न आदेश का प्रयास करें

instmodsh


सरलतम उत्तर। हमारे प्राचीन डेबियन 6 सर्वर पर ठीक काम किया।
डेव एवरिट



1

मैंने ऐसा करने के लिए कल ही एक पर्ल स्क्रिप्ट लिखी थी। स्क्रिप्ट @INC में स्थापित पर्ल मॉड्यूल की सूची को विभाजक के रूप में '::' का उपयोग करके लौटाता है। स्क्रिप्ट का उपयोग करके कॉल करें -

perl perlmod.pl

या

perl perlmod.pl <module name> #Case-insensitive(eg. perl perlmod.pl ftp)

चूंकि स्क्रिप्ट वर्तमान निर्देशिका ('।') को छोड़ देती है, क्योंकि मुझे सॉफ्ट-लिंक को पुन: भेजने में समस्या हो रही थी, लेकिन आप इसे grep फ़ंक्शन को लाइन 17 से बदलकर शामिल कर सकते हैं

  grep { $_ !~ '^\.$' } @INC

करने के लिए बस,

@INC

स्क्रिप्ट यहां मिल सकती है।


1

सभी स्थापित .pm फ़ाइलों को सूचीबद्ध करने के लिए यहां एक और कमांड लाइन टूल है:

एक नियमित अभिव्यक्ति से मेल खाते स्थापित पर्ल मॉड्यूल का पता लगाएं

  • पोर्टेबल (केवल कोर मॉड्यूल का उपयोग करता है)
  • तेज़ नज़र के लिए कैश विकल्प
  • विन्यास योग्य प्रदर्शन विकल्प

1

एलएस (1) जैसे बाहरी कार्यक्रम का उपयोग किए बिना @INC निर्देशिका पेड़ों के माध्यम से चलने के लिए, एक File::Find::Ruleमॉड्यूल का उपयोग कर सकता है , जिसमें एक अच्छा घोषणात्मक इंटरफ़ेस है।

इसके अलावा, आप डुप्लिकेट को फ़िल्टर करना चाहते हैं यदि पिछले पर्ल संस्करणों में समान मॉड्यूल हैं। ऐसा करने के लिए कोड इस तरह दिखता है:

#! /usr/bin/perl -l

use strict;
use warnings;
use File::Find::Rule;

my %seen;
for my $path (@INC) {
    for my $file (File::Find::Rule->name('*.pm')->in($path)) {
        my $module = substr($file, length($path)+1);
        $module =~ s/.pm$//;
        $module =~ s{[\\/]}{::}g;
        print $module unless $seen{$module}++;
    }
}

रन के अंत में, आपके पास अपने सभी मॉड्यूल के नाम के रूप में% हैश देखा जाता है। देखे गए समय की गिनती के बजाय कुंजी के मूल्य के रूप में कैनोनिकल फ़ाइल नाम ($ फ़ाइल में दिया गया) को बचाने के लिए कोड को अनुकूलित किया जा सकता है।


1

निम्नलिखित ने मेरे लिए काम किया।

$ perldoc perllocal | grep Module
$ perldoc perllocal | grep -E 'VERSION|Module'

1

वे सभी जो perldoc, या अन्य मॉड्यूल स्थापित नहीं कर सकते हैं, और जानना चाहते हैं कि कौन से मॉड्यूल उपलब्ध हैं (CPAN या अन्यथा), linux और Mingw32 / 64 के लिए निम्नलिखित कार्य करता है:

grep -RhIP '^package [A-Z][\w:]+;' `perl -e 'print join " ",@INC'` | sed 's/package //' | sort | uniq

हां, यह गड़बड़ है। हाँ, यह शायद आप से अधिक रिपोर्ट चाहता है। लेकिन अगर आप इसे एक फ़ाइल में पाइप करते हैं, तो आप आसानी से जांच सकते हैं, कह सकते हैं कि कौन सी डीबीएम इंटरफेस मौजूद हैं:

 grep -RhIP '^package [A-Z][\w:]+;' `perl -e 'print join " ",@INC'` | sed 's/package //' | sort | uniq > modules-installed
 cat modules-installed | grep -i dbm 

AnyDBM_File;
Memoize::AnyDBM_File;
Memoize::NDBM_File;
Memoize::SDBM_File;
WWW::RobotRules::AnyDBM_File;

यही कारण है कि मैं इस पृष्ठ पर समाप्त हो गया (निराश)

(मुझे पता है कि यह ओपी के सवाल का बिल्कुल जवाब नहीं देता है, लेकिन मैं इसे किसी ऐसे व्यक्ति के लिए पोस्ट कर रहा हूं जो मैंने यहां किया था उसी कारण से। यह स्टैक के साथ समस्या है *** यह सवाल खोजने के लिए लगभग असंभव है। यह पूछते हुए भी कि यह मौजूद है, फिर भी स्टैक *** लगभग हमेशा Google की शीर्ष हिट है! "


इसने मेरे लिए काम किया। इसे पोस्ट करने के लिए धन्यवाद। मुझे ऐसे वातावरण में इसकी आवश्यकता थी जहाँ मुझे किसी भी निर्भरता को स्थापित करने / अद्यतन करने की अधिक पहुँच न हो।
आशीष कुमार

0

पर्ल कुकबुक में एक स्क्रिप्ट "pmdesc" के कई पुनरावृत्तियों शामिल हैं जो आपको चाहिए। "पर्ल कुकबुक pmdesc" के लिए Google-खोज और आपको अन्य क्यू एंड ए साइट्स , नेट पर कई कोड लिस्टिंग, समाधान की चर्चा, और यहां तक ​​कि कुछ शोधन पर लेख मिलेंगे ।


0

यहां एक पर्ल वन-लाइनर है जो स्थापित मॉड्यूल की एक सूची का प्रिंट आउट लेगा:

perl -MExtUtils::Installed -MData::Dumper -e  'my ($inst) = ExtUtils::Installed->new(); print Dumper($inst->modules());'

बस सुनिश्चित करें कि आपके पास डेटा :: डम्पर स्थापित है।


2
यह 5945 के बजाय केवल 15 पर्ल मॉड्यूल को सूचीबद्ध करता है जो 'cpan -l' को सूचीबद्ध करता है।
पॉल टॉम्बलिन

0
cd /the/lib/dir/of/your/perl/installation
perldoc $(find . -name perllocal.pod)

विंडोज यूजर्स इसे खोजने के लिए सिर्फ विंडोज एक्सप्लोरर सर्च करते हैं।


0

"Perldoc -l" आज़माएँ:

$ perldoc -l लॉग :: डिस्पैच /usr/local/share/perl/5.26.1/Log/Dispatch.pm


0

यहां @ JamesThomasMoon1979 की स्क्रिप्ट को एक-लाइनर के रूप में फिर से लिखा गया है

perl -MExtUtils::Installed -e '$i=ExtUtils::Installed->new(); 
      print "$_ ".$i->version($_)."\n" for $i->modules();'

-1

जैसे ही आप अपनी पर्ल स्क्रिप्ट दर्ज करते हैं, आपके पास सभी स्थापित मॉड्यूल होते हैं। @INC में फ़ोल्डर्स के नीचे .pm फाइलें तो एक छोटी सी bash स्क्रिप्ट आपके लिए काम करेगी:

#!/bin/bash

echo -e -n "Content-type: text/plain\n\n"

inc=`perl -e '$, = "\n"; print @INC;'`

for d in $inc
do
   find $d -name '*.pm'
done

क्यों नहीं? find `perl -le'print for@INC'` -name '*.pm'
हायनेक -पिची- विचोडिल

-2

लिनक्स के लिए सबसे आसान तरीका है,

dpkg -l | grep "perl"

1
ओपी ने सिस्टम में स्थापित सीपीएएन (पर्ल) मॉड्यूल की एक सूची के लिए कहा, न कि अगर सिस्टम में पर्ल स्थापित किया गया है (न तो ओपी ने हमें बताया कि यदि उपयुक्त उपलब्ध है)
रोलो

मैं एक perl विशेषज्ञ नहीं हूँ, लेकिन मैं ऊपर से आदेश में perl मॉड्यूल स्थापित देखा है। यहाँ सही जवाब नहीं हो सकता है।
यासिरू जी

-2

यह मेरे लिए काम करता है

perl -e 'print join("\n",@INC,"")'

इस कोड स्निपेट के लिए धन्यवाद, जो कुछ सीमित, तत्काल सहायता प्रदान कर सकता है। एक उचित व्याख्या यह दर्शाती है कि यह समस्या का एक अच्छा समाधान क्यों है, यह दिखाते हुए इसके दीर्घकालिक मूल्य में बहुत सुधार करेगा , और यह भविष्य के पाठकों को अन्य, समान प्रश्नों के साथ और अधिक उपयोगी बना देगा। कृपया कुछ स्पष्टीकरण जोड़ने के लिए अपने उत्तर को संपादित करें, जिसमें आपके द्वारा की गई धारणाएँ शामिल हैं।
Machavity

-3

यह वही है जो मैं करता हूं: perl -M{cpan_module}
यदि आपको कोई त्रुटि नहीं मिलती है तो एक अच्छा मौका है कि मॉड्यूल स्थापित है।


2
मुझे विश्वास नहीं है कि यह सवाल का जवाब देता है। इस सुझाव का उपयोग करते हुए, यह मॉड्यूल द्वारा मॉड्यूल के माध्यम से जाने के लिए किसी को पता लगाने में काफी समय लग सकता है कि कौन से मॉड्यूल स्थापित हैं या नहीं।
डेव न्यूमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.