Latest web development tutorials

حزم بيرل وحدات

بيرل كل طرد يحتوي على رمز تركيب تعريف جدول منفصل هو:

package mypack;

هذا البيان يعرف حزمة تسمىmypack باسم جميع المتغيرات والوظائف الفرعية المحددة فيما يلي يتم تخزينها في جدول الرموز المرتبطة حزمة، حزمةحتى اجه بيان آخر حتى الآن.

كل جدول رمز لديها مجموعة من المتغيرات، الوظائف الفرعية، كل اسم المجموعة ليست ذات الصلة، بحيث يمكنك استخدام نفس اسم المتغير في مجموعات مختلفة، والتي تمثل المتغيرات المختلفة.

الوصول من حزمة واحدة للمتغير حزمة أخرى، يمكنك تحديد "اسم حزمة + القولون مزدوجة (: :) + اسم متغير" النهج.

ويطلق تخزين المتغيرات وأسماء روتين جدول الرموز الافتراضية المرتبطةالرئيسي الحزمة المرتبطة.إذا تم تعريف البرنامج في مجموعات أخرى، عندما تريد أن يعود مرة أخرى إلى استخدام جدول الرموز الافتراضية، يمكنك إعادة تعيين حزمة رئيسية هي:

package main;

وهكذا، فإن البرنامج المقبل كما لو لم يعرف الحزم، والمتغيرات وأسماء روتين كما التخزين المعتادة.

الملف المثال التالي على حزمة الرئيسية وفو.__PACKAGE__ متغير خاص لأسماء حزمة الإخراج:

#!/usr/bin/perl

#  main 包
$i = 1; 
print "包名 : " , __PACKAGE__ , " $i\n"; 

package Foo;
#  Foo 包
$i = 10; 
print "包名 : " , __PACKAGE__ , " $i\n"; 

package main;
# 重新指定 main 包
$i = 100; 
print "包名 : " , __PACKAGE__ , " $i\n"; 
print "包名: " , __PACKAGE__ ,  " $Foo::i\n"; 

1;

البرنامج المذكور أعلاه، والناتج هو:

包名 : main 1
包名 : Foo 10
包名 : main 100
包名: main 10

BEGIN وحدات END

توفر لغة بيرل اثنين من الكلمات الرئيسية: BEGIN، END. ويمكن أن تكون مجموعة منفصلة من النصوص التي تنفذ قبل تشغيل برنامج أو الجسم بعد تشغيل.

الصيغة كالتالي:

BEGIN { ... }
END { ... }
BEGIN { ... }
END { ... }
  • كلBEGIN كتلة ولكن تنفيذها قبل بيانات أخرى أعدم بعد النصي بيرل تحميل والمترجمة.

  • كل كتلةEND البيانات أعدم قبل إنهاء مترجم.

  • BEGIN و ENDكتلة مفيد بشكل خاص عند إنشاء وحدة بيرل.

إذا كنت لا تفهم كبير، يمكننا أن نرى حالات:

#!/usr/bin/perl

package Foo;
print "Begin 和 Block 实例\n";

BEGIN { 
    print "这是 BEGIN 语句块\n" 
}

END { 
    print "这是 END 语句块\n" 
}

1;

البرنامج المذكور أعلاه، والناتج هو:

这是 BEGIN 语句块
Begin 和 Block 实例
这是 END 语句块

ما هو وحدة بيرل؟

Perl5 مع حزمة بيرل لإنشاء وحدة نمطية.

وحدة بيرل هو عبارة عن حزمة قابلة لإعادة الاستخدام، واسم وحدة ونفس اسم الحزمة، ملف التمديد المحددةلل.pm.

فيما يلي نحدد Foo.pm حدة، رمز على النحو التالي:

#!/usr/bin/perl

package Foo;
sub bar { 
   print "Hello $_[0]\n" 
}

sub blat { 
   print "World $_[0]\n" 
}
1;

بيرل وحدات يثير القلق أن نلاحظ ما يلي:

  • وظيفةواستخدام تتطلبوحدة الحمل.

  • INC بيرل هو خاص مجموعة المدمج الذي يحتوي مسار الدليل إلى الموقع من إجراءات مكتبة الأكاذيب.

  • تتطلب وتدعو استخداموظيفة وظيفةحدة التقييملتنفيذ التعليمات البرمجية.

  • إنهاء1؛ تنفيذ إرجاع TRUE، وهذا أمر لا بد منه، وإلا فإنه بإرجاع خطأ.


يتطلب استخدام وظيفة

وحدة يمكن التذرع بها وظيفةتتطلب ما يلي:

#!/usr/bin/perl

require Foo;

Foo::bar( "a" );
Foo::blat( "b" );

يمكنك أيضا استخدام وظيفة الإشارة إلى:

<pre>
#!/usr/bin/perl

use Foo;

bar( "a" );
blat( "b" );

ونلاحظ ضرورة تتطلب إشارة إلى الاسم المحدد وظيفة الحزمة، ولا تحتاج إلى استخدام، والفرق الرئيسي بينهما هو:

  • 1، تتطلب لتحميل وحدة بيرل أو برنامج (لاحقة .pm يمكن حذفها، ولكن يجب أن يكون هناك .PL)
  • 2، يتم ترجمة بيان استخدام بيرل عندما قدم، تتطلب وقت التشغيل هو عرض
  • 3، بيرل استخدام إدخال وحدة، ولكن أيضا إدخال وحدة فرعية وحدة. وأنه لا يمكن أن تتطلب مقدمة اعادة اعلان
  • 4، هو استخدام لإلقاء نظرة علىINC الافتراضية الحالية داخل، وبمجرد أن الوحدة ليست في الكلماتINC مع عدم إدخال الاستخدام، ولكن قد يتطلب المسار المحدد
  • 5 استخدام الإشارة وحدة، إذا كان اسم الوحدة النمطية يحتوي :: القولون مزدوج، والقولون تتضاعف كفاصل مسار، أي ما يعادل يونكس / أو تحت ويندوز \. مثل:

    use MyDirectory::MyModule

يمكنك تصدير قائمة من الرموز من حدة ذلك بإضافة العبارة التالية إلى استخدام وحدات:

require Exporter;
@ISA = qw(Exporter);

يحتويEXPORT صفيف المتغيرات الافتراضية وظائف مشتقة من اسم:

package Module;

require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(bar blat);  # 默认导出的符号

sub bar { print "Hello $_[0]\n" }
sub blat { print "World $_[0]\n" }
sub splat { print "Not $_[0]\n" }  # Not exported!

1;

إنشاء وحدة نمطية بيرل

يمكنك بسهولة إنشاء وحدة نمطية بيرل توزيع بيرل يأتي مع h2xs الأداة.

يمكنك كتابة سطر الأوامر h2xs وضع ننظر في قائمة به المعلمة.

تركيب h2xs:

$ h2xs -AX -n  ModuleName

المعلمة الوصف:

  • -A آلية autoload تجاهل

  • -X تجاهل عنصر XS

  • -n يحدد ملحق اسم

على سبيل المثال، إذا كان الملفPerson.pm حدة، استخدم الأمر التالي:

$ h2xs -AX -n Person

ما سبق الناتج إرادة البرنامج:

Writing Person/lib/Person.pm
Writing Person/Makefile.PL
Writing Person/README
Writing Person/t/Person.t
Writing Person/Changes
Writing Person/MANIFEST

شخص تحت الدليل ترون الدلائل المضافة حديثا والملفات الشرح:

  • اقرأني: هذا الملف يحتوي على معلومات حول تثبيت تبعيات وحدة، معلومات حقوق التأليف والنشر، وهلم جرا.

  • التغييرات: ملف السجل هذا التغيير على الملف مشروع (التغيير).

  • Makefile.PL: هذا هو معيار باني بيرل ماكيفيلي. تستخدم لإنشاء ملف Makefile.PL لتجميع وحدة.

  • البيان: يتم استخدام هذا الملف لبناء تلقائيا نوع tar.gz من توزيع وحدة الإصدار. حتى تتمكن من وضع وحدة كبان الخاص بك للحصول على نشرها أو توزيعها على الآخرين. وهو يحتوي على قائمة من كافة الملفات الخاصة بك في هذا المشروع.

  • Person.pm: هذا هو ملف الوحدة النمطية الرئيسي الذي يحتوي على التعليمات البرمجية للمعالج mod_perl الخاص بك (رمز معالج).

  • Person.t: لهذه الوحدة بعض النصوص الاختبار. افتراضيا، انها مجرد وحدة التدقيق تحميل، يمكنك إضافة بعض اختبار وحدة جديدة.

  • ر /: ملف اختبار

  • ليب /: دليل التخزين المصدر الفعلي

يمكنك استخدام القطران الأوامر (لينكس) إلى الدليل المذكور أعلاه تعبئتها وفقا لPerson.tar.gz.


تركيب وحدات بيرل

يمكننا فقطPerson.tar.gz ملف مضغوط لضغط التثبيت، قم بالخطوات التالية:

tar xvfz Person.tar.gz
cd Person
perl Makefile.PL
make
make install

الجولة الأولى "بيرل Makefile.PL" في الدليل الحالي ولدت ماكيفيلي.

قم بتشغيل "جعل" لتجميع وإنشاء ملف مكتبة المطلوبة؛

تلاه سهم "جعل اختبار" اختبار تجميع نتائج صحيحة، والماضي البعيد "جعل تثبيت" لتثبيت ملفات المكتبة إلى دليل النظام، وبالتالي إنهاء عملية تجميع كامل.