• 0

كيف أعرف أيّا من الوحدات مثبّتة على جهازي في بيرل؟

أريد أن أعرف ما هي الوحدات Module المثبّتة على جهازي، فكيف يُمكن أن أقوم بالأمر؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يُمكنك القيّام بذلك من الطرفيّة عبر الأمر:

cpan -l

يُمكنك كذلك الاعتماد على الأمر cpan -a الذي ينتج ملف autobundle يمكن لـ  CPAN.pm أن يفهمه ويُعيد تثبيت جميع الوحدات:

cpan -a

داخل برنامج بيرل يُمكنك استخدام الوحدة  ExtUtils::Installed لعرض جميع التوزيعات المُثبّتة، المُشكلة الوحيدة أنّ هذا الأمر سيتطلّب بعض من الوقت للانتهاء:

use ExtUtils::Installed;
my $inst    = ExtUtils::Installed->new();
my @modules = $inst->modules();

إذا كنت تريد قائمة بجميع أسماء ملفّات الوحدات، يُمكن أن تعتمد على  File::Find::Rule كالتّالي:

        use File::Find::Rule;
        my @files = File::Find::Rule->
            extras({follow => 1})->
            file()->
            name( '*.pm' )->
            in( @INC )
            ;

أو يُمكن استخدام  File::Find :

        use File::Find;
        my @files;
        find(
            {
            wanted => sub {
                push @files, $File::Find::fullname
                if -f $File::Find::fullname && /\.pm$/
            },
            follow => 1,
            follow_skip => 2,
            },
            @INC
        );
        print join "\n", @files;

إذا كنت ترغب في التحقق من تواجد وحدة ما على جهازك، فعليك بالتّحقّق من وجود التوثيق الخاص بالوحدة، إذا لم يكن التوثيق موجودا فالغالب أن الوحدة غير موجودة، وقد لا تملك الوحدة توثيقا في بعض الأوقات النّادرة.

perldoc Module::Name

يمكنك كذلك مُحاولة تطبيق الوحدة في سطر بيرل واحد كالتّالي:

$ perl -MModule::Name -e1

إذا لم تحصل على رسالة  "Can't locate ... in @INC" فهذا يعني بأن الوحدة موجودة.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن