اذهب إلى المحتوى
  • 0

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

عاطي

السؤال

Recommended Posts

  • 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" فهذا يعني بأن الوحدة موجودة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...