هذا هو الأمر perlhack الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
Perlhack - كيفية اختراق لغة Perl
الوصف
يشرح هذا المستند كيفية عمل تطوير لغة Perl. يتضمن تفاصيل حول Perl 5
قائمة البريد الإلكتروني لـ Porters، ومستودع Perl، ومتعقب أخطاء Perlbug، وإرشادات التصحيح، و
تعليق على فلسفة تطوير بيرل.
سوبر سريع تصحيح دليل إرشادي
إذا كنت تريد فقط إرسال تصحيح صغير واحد مثل إصلاح الجراب، أو اختبار الخلل، قم بالتعليق
إصلاحات، وما إلى ذلك، فإنه من السهل! إليك الطريقة:
· تحقق من مستودع المصدر
مصدر بيرل موجود في مستودع git. يمكنك استنساخ المستودع باستخدام ملف
الأمر التالي:
٪ git clone git: //perl5.git.perl.org/perl.git perl
· تأكد من اتباعك لأحدث النصائح
في حالة تحديث النصائح الواردة في هذا الدليل مؤخرًا، اقرأ الإصدار الأحدث
مباشرة من مصدر بيرل:
٪ بيردوك بود / بيرلهاك
· قم بالتغيير
هاك، هاك، هاك. ضع في اعتبارك أن لغة Perl تعمل على العديد من المنصات المختلفة
أنظمة تشغيل مختلفة لها قدرات مختلفة ، وأنظمة ملفات مختلفة
المنظمات ، وحتى مجموعات الشخصيات المختلفة. تقدم Perlhacktips النصيحة في هذا الشأن.
· اختبر التغيير الخاص بك
يمكنك إجراء كافة الاختبارات باستخدام الأوامر التالية:
% ./تكوين -des -Dusedevel
% إجراء اختبار
استمر في القرصنة حتى تجتاز الاختبارات.
· ارتكب التغيير الخاص بك
سيؤدي الالتزام بعملك إلى حفظ التغيير on لك محلي نظام:
% git الالتزام -a -m "رسالة الالتزام تظهر هنا"
تأكد من أن رسالة الالتزام تصف التغيير الذي أجريته في جملة واحدة. على سبيل المثال،
"تم إصلاح الأخطاء الإملائية في perlhack.pod".
· أرسل التغيير إلى perlbug
الخطوة التالية هي إرسال التصحيح الخاص بك إلى نظام التذاكر الأساسي لـ Perl عبر البريد الإلكتروني.
إذا كانت تغييراتك في التزام git واحد، فقم بتشغيل الأوامر التالية لإنشاء ملف git
ملف التصحيح وأرفقه بتقرير الأخطاء الخاص بك:
% git تنسيق التصحيح -1
% ./Perl -Ilib utils/Perlbug -p 0001-*.patch
سيطرح عليك برنامج perlbug بعض الأسئلة حول عنوان بريدك الإلكتروني و
التصحيح الذي ترسله. بمجرد أن تجيب عليهم ، سيتم إرسال التصحيح الخاص بك عبر
البريد الإلكتروني.
إذا كانت تغييراتك في عمليات تنفيذ متعددة، فقم بإنشاء ملف تصحيح لكل منها و
قم بتزويدهم بخيار "-p" الخاص بـ perlbug مفصولاً بفواصل:
% git تنسيق التصحيح -3
% ./Perl -Ilib utils/Perlbug -p 0001-fix1.patch,0002-fix2.patch,\
> 0003-fix3.patch
عندما يُطلب منك ذلك، اختر موضوعًا يلخص تغييراتك.
· شكرًا لك
يقدر الحمالون الوقت الذي قضيته في المساعدة على تحسين لغة بيرل. شكرًا لك!
· المرة التالية
في المرة التالية التي ترغب فيها في عمل تصحيح ، عليك أن تبدأ من أحدث إصدار من perl في ملف
الدولة البكر. تأكد من عدم وجود أي تغييرات محلية أو ملفات مضافة في ملف Perl الخاص بك
الخروج الذي ترغب في الاحتفاظ به، ثم قم بتشغيل هذه الأوامر:
٪ git pull
إعادة تعيين٪ git - أصل / ملف صلب
% بوابة نظيفة -dxf
BUG التبليغ
إذا كنت تريد الإبلاغ عن خطأ في Perl ، فيجب عليك استخدام com.perlbug أداة سطر الأوامر. هذا
ستضمن الأداة أن تقرير الأخطاء الخاص بك يتضمن جميع الأنظمة والتكوينات ذات الصلة
معلومات.
لتصفح أخطاء Perl والتصحيحات الموجودة ، يمكنك استخدام واجهة الويب على
<http://rt.perl.org/>.
يرجى التحقق من أرشيف قائمة perl5-porters (انظر أدناه) و/أو تتبع الأخطاء
النظام قبل تقديم تقرير بالأخطاء. في كثير من الأحيان، ستجد أنه تم الإبلاغ عن الخطأ
بالفعل.
يمكنك تسجيل الدخول إلى نظام تتبع الأخطاء والتعليق على تقارير الأخطاء الموجودة. اذا أنت
لديك معلومات إضافية بخصوص خطأ موجود ، يرجى إضافته. وهذا سوف يساعد
الحمالون يصلحون الخلل.
PERL 5 الحمالون
القائمة البريدية لـ perl5-porters (p5p) هي المكان الذي يتم فيه الحفاظ على توزيع Perl القياسي
والمتطورة. يُشار أيضًا إلى الأشخاص الذين يديرون لغة Perl باسم "Perl 5 Porters" ،
"p5p" أو "الحمالين" فقط.
أرشيف القائمة القابل للبحث متاح على
<http://markmail.org/search/?q=perl5-porters>. يوجد أيضًا أرشيف في
<http://archive.develooper.com/perl5-porters@ perl.org />.
تغييرات بيرل البريدية الإدارية
تتلقى القائمة البريدية لـ Perl5-changes نسخة من كل تصحيح يتم إرساله إلى
فروع الصيانة والتطوير لمستودع بيرل. يرى
<http://lists.perl.org/list/perl5-changes.html> للحصول على معلومات الاشتراك والأرشيف.
# p5p on IRC
ينشط العديد من الحمالين أيضًا على قناة. لاتتردد في الانضمام
القناة وطرح الأسئلة حول القرصنة على Perl core.
الحصول على ال PERL مصدر
يتم الاحتفاظ بكل كود مصدر Perl مركزيًا في مستودع Git في perl5.git. Perl.org.
يحتوي المستودع على العديد من مراجعات Perl من Perl 1 وما بعده وجميع المراجعات من
بحكم الأمر، نظام التحكم في الإصدار السابق.
لمزيد من التفاصيل حول استخدام git مع مستودع Perl، يرجى مراجعة perlgit.
عرض الوصول بواسطة بوابة
ستحتاج إلى نسخة من Git لجهاز الكمبيوتر الخاص بك. يمكنك جلب نسخة من المستودع
باستخدام بروتوكول git:
٪ git clone git: //perl5.git.perl.org/perl.git perl
يؤدي هذا إلى استنساخ المستودع وإنشاء نسخة محلية في ملف بيرل الدليل.
إذا لم تتمكن من استخدام بروتوكول git لأسباب تتعلق بجدار الحماية ، فيمكنك أيضًا الاستنساخ عبر http ،
على الرغم من أن هذا أبطأ بكثير:
% جيت استنساخ http://perl5.git.perl.org/perl.git بيرل
عرض الوصول بواسطة القادم الويب
يمكنك الوصول إلى المستودع عبر الويب. هذا يسمح لك بتصفح الشجرة ، انظر
الالتزامات الأخيرة، والاشتراك في خلاصات RSS للحصول على التغييرات، والبحث عن التزامات معينة و
أكثر. يمكنك الوصول إليه علىhttp://perl5.git.perl.org/perl.git>. مرآة
تم العثور على المستودع في .
عرض الوصول بواسطة رسينك
يمكنك أيضًا اختيار استخدام rsync للحصول على نسخة من الشجرة المصدر الحالية لـ
فرع بليبيرل وجميع فروع الصيانة :
% rsync -avz rsync://perl5.git.perl.org/perl-current .
% rsync -avz rsync://perl5.git.perl.org/perl-5.12.x .
% rsync -avz rsync://perl5.git.perl.org/perl-5.10.x .
% rsync -avz rsync://perl5.git.perl.org/perl-5.8.x .
% rsync -avz rsync://perl5.git.perl.org/perl-5.6.x .
% rsync -avz rsync://perl5.git.perl.org/perl-5.005xx .
(أضف خيار "--delete" لإزالة الملفات المتبقية.)
للحصول على قائمة كاملة بنقاط المزامنة المتاحة:
٪ rsync perl5.git.perl.org ::
كتابة الوصول بواسطة طائرة نفاثة
إذا كان لديك بت التزام، فيرجى مراجعة perlgit لمزيد من التفاصيل حول استخدام git.
التصحيح PERL
إذا كنت تخطط للقيام بعمل أكثر شمولاً من مجرد إصلاح صغير واحد، فنحن نشجعك على القيام بذلك
اقرأ الوثائق أدناه. سيساعدك هذا على تركيز عملك وعمل التصحيحات الخاصة بك
من الأسهل دمجها في مصدر Perl.
تقديم بقع
إذا كان لديك تصحيحًا صغيرًا تريد إرساله، فيرجى إرساله عبر perlbug. يمكنك أيضًا إرسال ملفات
البريد الإلكتروني مباشرة إلى [البريد الإلكتروني محمي]. يرجى ملاحظة أنه قد يتم تعليق الرسائل المرسلة إلى perlbug
في قائمة انتظار الإشراف ، لذلك لن تتلقى ردًا على الفور.
ستعرف أن طلبك قد تمت معالجته عندما تتلقى بريدًا إلكترونيًا من تذكرتنا
نظام تتبع. سيعطيك هذا البريد الإلكتروني رقم التذكرة. بمجرد أن يتم التصحيح الخاص بك
إلى نظام تتبع التذاكر، سيتم إرسالها أيضًا إلى [البريد الإلكتروني محمي] قائمة.
تتم مراجعة التصحيحات ومناقشتها في قائمة p5p. بقع بسيطة وغير مثيرة للجدل سوف تفعل ذلك
وعادة ما يتم تطبيقها دون أي مناقشة. عندما يتم تطبيق التصحيح، ستكون التذكرة
تم التحديث وسوف تتلقى البريد الإلكتروني. بالإضافة إلى ذلك، سيتم إرسال بريد إلكتروني إلى قائمة p5p.
في حالات أخرى ، سيحتاج التصحيح إلى مزيد من العمل أو المناقشة. سيحدث ذلك على p5p
قائمة.
نشجعك على المشاركة في المناقشة والدفاع عن التصحيح الخاص بك.
في بعض الأحيان قد تضيع رقعتك في خلط ورق اللعب. من المناسب إرسال تذكير
أرسل بريدًا إلكترونيًا إلى p5p إذا لم يتم اتخاذ أي إجراء خلال شهر. يرجى تذكر أن بيرل 5
المطورون جميعهم متطوعون، وكن مهذبًا.
يتم دائمًا تطبيق التغييرات مباشرة على فرع التطوير الرئيسي، المسمى "Blead". بعض
قد يتم نقل التصحيحات إلى فرع الصيانة. إذا كنت تعتقد أن التصحيح الخاص بك هو المناسب
بالنسبة لفرع الصيانة (راجع "فروع الصيانة" في Perlpolicy)، يرجى توضيح السبب
عند تقديمه.
الحصول على لك التصحيح مقبول
إذا كنت تقوم بإرسال تصحيح التعليمات البرمجية، فهناك العديد من الأشياء التي يمكنك القيام بها للمساعدة
يقبل Perl 5 Porters التصحيح الخاص بك.
بقعة نمط
إذا استخدمت git للتحقق من مصدر Perl ، فإن استخدام "git format-patch" سينتج ملف
التصحيح بأسلوب مناسب لـ Perl. ينتج عن الأمر "format-patch" ملف تصحيح واحد
لكل التزام قمت به. إذا كنت تفضل إرسال تصحيح واحد لجميع الالتزامات ، فيمكنك ذلك
استخدم "جيت ديف".
% git checkout blead
٪ git pull
% git diff blead my-branch-name
يؤدي هذا إلى إنتاج تصحيح بناءً على الفرق بين Blead وفرعك الحالي. إنه
من المهم التأكد من تحديث هذا النص قبل إنتاج الفرق، وهذا هو السبب وراء قيامنا بذلك
اتصل بـ "git pull" أولاً.
نوصي بشدة باستخدام git إن أمكن. وسوف تجعل حياتك أسهل، و
لنا كذلك.
ومع ذلك، إذا كنت لا تستخدم git، فلا يزال بإمكانك إنتاج التصحيح المناسب. سوف تحتاج إلى
نسخة أصلية من مصدر بيرل للمقارنة. يفضل الحمالون الفروق الموحدة.
باستخدام GNU "diff"، يمكنك إنتاج فرق مثل هذا:
٪ فرق - Npurd perl.pristine perl.mine
تأكد من إجراء "realclean" في نسختك من Perl لإزالة أي عناصر بناء، أو
قد تحصل على نتيجة مربكة.
ارتكب الرسالة
أثناء قيامك بصياغة كل تصحيح تنوي إرساله إلى لغة Perl الأساسية، من المهم أن تكتب
رسالة التزام جيدة. هذا مهم بشكل خاص إذا كان طلبك سيتكون من
سلسلة من الالتزامات.
يجب أن يكون السطر الأول من رسالة الالتزام وصفًا موجزًا بدون فترة. هو - هي
يجب ألا يزيد عن سطر موضوع البريد الإلكتروني، حيث تكون القاعدة الجيدة هي 50 حرفًا
إبهام.
الكثير من أدوات Git (Gitweb، GitHub، git log --pretty=oneline، ...) ستعرض فقط
السطر الأول (يتم قطعه عند 50 حرفًا) عند تقديم ملخصات الالتزام.
يجب أن تتضمن رسالة الالتزام وصفًا للمشكلة التي يقوم التصحيح بتصحيحها أو
الوظائف الجديدة التي يضيفها التصحيح.
كقاعدة عامة، يجب أن تساعد رسالة الالتزام الخاصة بك المبرمج الذي يعرف
يفهم Perl Core بسرعة ما كنت تحاول القيام به، وكيف كنت تحاول القيام به، و
لماذا التغيير مهم ل Perl.
· لماذا
يجب أن تصف رسالة الالتزام الخاصة بك سبب أهمية التغيير الذي تجريه. متى
إذا نظر شخص ما إلى التغيير الذي طرأ عليك خلال ستة أشهر أو ست سنوات، فيجب أن تكون نيتك واضحة.
إذا كنت تقوم بإيقاف ميزة ما بقصد تبسيط جزء آخر منها لاحقًا
رمز، ويقول ذلك. إذا كنت تقوم بإصلاح مشكلة في الأداء أو إضافة ميزة جديدة إلى
دعم جزء آخر من النواة، أذكر ذلك.
· ماذا
يجب أن تصف رسالة الالتزام الخاصة بك الجزء الذي تقوم بتغييره من جوهر Perl
ماذا تتوقع أن تفعل التصحيح الخاص بك.
· كيف
على الرغم من أنه ليس ضروريًا لإجراء تغييرات على الوثائق أو الاختبارات الجديدة أو التصحيحات البسيطة، إلا أنه
غالبًا ما يستحق شرح كيفية عمل التغيير. حتى لو كان الأمر واضحًا لك اليوم ، فقد يكون كذلك
لن يكون واضحًا للحمال الشهر المقبل أو العام المقبل.
ليس المقصود من رسالة الالتزام أن تحل محل التعليقات في التعليمات البرمجية الخاصة بك. يقترف
يجب أن تصف الرسائل التغيير الذي أجريته، بينما يجب أن تصف تعليقات التعليمات البرمجية
الحالة الحالية للكود.
إذا كنت قد نفذت للتو ميزة جديدة ، فقم باستكمال المستندات والاختبارات والتعليقات الجيدة
الكود، غالبًا ما تكفي رسالة التزام مختصرة. ومع ذلك، إذا قمت للتو بتغيير ملف
حرف واحد عميق في المحلل اللغوي أو المعجم، قد تحتاج إلى كتابة رواية صغيرة له
تأكد من أن القراء المستقبليين يفهمون ما فعلته ولماذا فعلت ذلك.
تعليقات، تعليقات، التعليقات
تأكد من التعليق على الكود الخاص بك بشكل مناسب. بينما التعليق على كل سطر ليس ضروريا،
أي شيء يستفيد من الآثار الجانبية للمشغلين، يخلق تغييرات من شأنها أن
يمكن الشعور بها خارج الوظيفة التي يتم تصحيحها، أو التي قد يجدها الآخرون مربكة
موثقة. إذا كنت ستخطئ ، فمن الأفضل أن تخطئ في جانب إضافة الكثير
من التعليقات قليلة جدًا.
أفضل التعليقات تشرح لماذا الكود يفعل ما يفعله، لا ماذا it هل.
الطراز
بشكل عام، يرجى اتباع النمط المحدد للكود الذي تقوم بتصحيحه.
على وجه الخصوص، اتبع هذه الإرشادات العامة لتصحيح مصادر Perl:
· 8 علامات تبويب واسعة (بدون استثناءات!)
· 4 مسافات بادئة واسعة للتعليمات البرمجية، مسافات بادئة واسعة 2 لتعريفات CPP المتداخلة
· حاول جاهداً أن لا يتجاوز عدد الأعمدة 79 عموداً
· نماذج ANSI C
· غير المحتضن وأسلوب "K&R" لوضع مسافة بادئة على بنيات التحكم
· لا يوجد أسلوب C ++ (//) التعليقات
· ضع علامة على الأماكن التي تحتاج إلى إعادة زيارتها باستخدام XXX (وقم بزيارتها كثيرًا!)
· القوس الافتتاحي يصطف مع "إذا" عندما يمتد الشرط إلى أسطر متعددة؛ ينبغي أن يكون في
نهاية السطر خلاف ذلك
· في تعريفات الوظائف ، يبدأ الاسم في العمود 0 (نوع القيمة المعادة هو في السابق
خط)
· مسافة واحدة بعد الكلمات الأساسية التي تتبعها أقواس، ولا توجد مسافة بين الوظائف
الاسم والقوس التالي
· تجنب المهام الشرطية، ولكن إذا كانت لا مفر منها، استخدم قوسًا إضافيًا، على سبيل المثال
"إذا (أ && (ب = ج)) ..."
· "العودة فو؛" بدلاً من "return(foo);"
· "إذا (!foo) ..." بدلاً من "إذا (foo == FALSE) ..." إلخ.
· لا تعلن عن المتغيرات باستخدام "التسجيل". وقد يؤدي إلى نتائج عكسية مع الحديث
المترجمون، ويتم إهمالهم في لغة C++، والتي يوجد ضمنها مصدر Perl بانتظام
تجميع وانتاج.
· يجب أن تكون الوظائف المضمنة الموجودة في الرؤوس والتي يمكن الوصول إليها بواسطة كود XS قادرة على ذلك
للتجميع دون تحذيرات باستخدام إشارات التجميع الإضافية شائعة الاستخدام، مثل gcc's
"-Wswitch-default" الذي يحذر عندما لا تحتوي عبارة التبديل على "افتراضي"
قضية. استخدام هذه العلامات الإضافية هو اكتشاف المشاكل المحتملة في كود C القانوني،
وغالبًا ما يستخدمه مجمعو لغة Perl، مثل موزعي Linux.
اختبار جناح
إذا قام التصحيح الخاص بك بتغيير التعليمات البرمجية (بدلاً من مجرد تغيير الوثائق)، فيجب عليك ذلك أيضًا
قم بتضمين حالة اختبار واحدة أو أكثر توضح الخطأ الذي تقوم بإصلاحه أو التحقق من صحة الخطأ الجديد
الوظيفة التي تضيفها. بشكل عام، يجب عليك تحديث ملف اختبار موجود بدلاً من ذلك
من إنشاء واحدة جديدة.
يجب أن تتبع إضافات مجموعة الاختبار الخاصة بك بشكل عام هذه الإرشادات (بإذن من Gurusamy
ساراثي[البريد الإلكتروني محمي]>):
· اعرف ما تختبره. اقرأ المستندات والمصدر.
· تميل إلى الفشل ، وليس النجاح.
· تفسير النتائج بدقة.
· استخدام ميزات غير ذات صلة (سيؤدي ذلك إلى طرد التفاعلات الغريبة).
· استخدم مصطلحات غير قياسية (وإلا فإنك لن تختبر TIMTOWTDI).
· تجنب استخدام أرقام الاختبار المشفرة كلما أمكن ذلك (الرقم المتوقع/الرقم الموجود في
t/op/tie.t أكثر قابلية للصيانة، ويقدم تقارير فشل أفضل).
· إعطاء رسائل خطأ ذات معنى عند فشل الاختبار.
· تجنب استخدام qx// و النظام() إلا إذا كنت اختبار لهم. إذا كنت تستخدمهم،
تأكد من أنك تغطي _all_ منصات perl.
فك أي ملفات مؤقتة تقوم بإنشائها.
· الترويج لتحذيرات غير متوقعة من الأخطاء باستخدام $ SIG {__ WARN__}.
· تأكد من استخدام المكتبات والوحدات المرفقة مع الإصدار الذي يتم اختباره، وليس
تلك التي تم تثبيتها بالفعل.
· أضف تعليقات على الكود توضح ما تختبره.
· جعل تحديث السلسلة '1..42' غير ضروري. أو تأكد من تحديثه.
· اختبار _جميع_ سلوكيات عامل أو مكتبة أو وظيفة معينة.
اختبار كافة الوسائط الاختيارية.
اختبار القيم المرجعة في سياقات مختلفة (منطقية ، عددي ، قائمة ، lvalue).
استخدم كلاً من المتغيرات العالمية والمعجمية.
ولا ننسى الحالات المرضية الاستثنائية.
الترقيع a النواة وحدة
يعمل هذا تمامًا مثل تصحيح أي شيء آخر، مع مراعاة إضافية واحدة.
وحدات في cPan / يتم الاحتفاظ بدليل الشجرة المصدر خارج قلب Perl.
عندما يقوم المؤلف بتحديث الوحدة، يتم نسخ التحديثات ببساطة إلى النواة. أنظر لهذا
وثائق الوحدة أو قائمتها علىhttp://search.cpan.org/> لمزيد من المعلومات حول
الإبلاغ عن الأخطاء وإرسال التصحيحات.
في معظم الحالات، يتم تصحيح الوحدات النمطية الموجودة في cPan / يجب أن يتم إرسالها إلى المنبع ولا ينبغي أن تكون كذلك
يتم تطبيقها على جوهر بيرل بشكل فردي. إذا كان التصحيح لملف في cPan / على الاطلاق لا يمكن
انتظر حتى يتم الإصلاح في المنبع، وإصداره إلى CPAN ونسخه إلى جزء من النص، ويجب عليك إضافته
(أو تحديث) إدخال "مخصص" في ملف "Porting / Maintainers.pl" ملف لوضع علامة على أن المحلي
تم إجراء التعديل. يرى "Porting / Maintainers.pl" لمزيد من التفاصيل.
في المقابل، وحدات في حي / يتم الحفاظ على الدليل في جوهره.
تحديث com.perldelta
لإجراء تغييرات كبيرة بما يكفي لتبرير أ جراب/perldelta.pod الدخول، سوف الحمالين
نقدر ذلك كثيرًا إذا قمت بإرسال إدخال دلتا مع التغيير الفعلي.
تشمل التغييرات الهامة، على سبيل المثال لا الحصر، ما يلي:
· إضافة أو إهمال أو إزالة الميزات الأساسية
· إضافة أو إهمال أو إزالة أو ترقية الوحدات الأساسية أو ثنائية الحياة
· إضافة اختبارات أساسية جديدة
· إصلاح المشكلات الأمنية والأخطاء المرئية للمستخدم في القلب
· التغييرات التي قد تؤدي إلى كسر الكود الموجود ، إما على مستوى بيرل أو مستوى سي
· تحسينات كبيرة في الأداء
· إضافة أو إزالة أو تغيير الوثائق بشكل ملحوظ في جراب/ دليل
· تغييرات هامة خاصة بالمنصة
الرجاء التأكد من إضافة إدخال perldelta إلى القسم الصحيح داخل
جراب/perldelta.pod. يتوفر المزيد من المعلومات حول كيفية كتابة إدخالات perldelta جيدة
في قسم "النمط" في Porting/how_to_write_a_perldelta.pod.
ابحث عن يجعل لـ a خير رقعة؟
يمكن أن تكون الميزات والإضافات الجديدة للغة مثيرة للجدل. ليس هناك مجموعة محددة
من المعايير التي تحدد الميزات التي تتم إضافتها، ولكن إليك بعض الأسئلة التي يجب طرحها
ضع في اعتبارك عند تطوير التصحيح:
لا القادم مفهوم مباراة القادم جنرال لواء الأهداف of بيرل؟
تشمل أهدافنا ، على سبيل المثال لا الحصر:
1. اجعلها سريعة وبسيطة ومفيدة.
2. حافظ على الميزات/المفاهيم متعامدة قدر الإمكان.
3. لا توجد حدود تعسفية (المنصات، أحجام البيانات، الثقافات).
4. اجعلها مفتوحة ومثيرة لاستخدام / تصحيح / داعية بيرل في كل مكان.
5. إما استيعاب التقنيات الجديدة، أو بناء الجسور معها.
في is القادم التنفيذ؟
كل كلام العالم لا فائدة منه بدون تنفيذ. في كل حالة تقريبًا،
من المتوقع أن يكون الشخص أو الأشخاص الذين يدافعون عن ميزة جديدة هم الذين يطبقونها
هو - هي. يمتلك الحمالون القادرون على ترميز ميزات جديدة أجنداتهم الخاصة ، وهم غير متاحين
لتنفيذ فكرتك (ربما جيدة).
الى الوراء التوافق
إنها خطيئة كبرى أن يتم كسر برامج بيرل الموجودة. يمكن أن تكون تحذيرات جديدة
مثير للجدل - يقول البعض أن البرنامج الذي يصدر تحذيرات لا يتم كسره، بينما يقول آخرون
إنها. قد تؤدي إضافة الكلمات الرئيسية إلى تعطيل البرامج وتغيير معناها
قد تؤدي تسلسلات الرمز المميز أو الوظائف إلى تعطيل البرامج.
يتضمن جوهر Perl 5 آليات لمساعدة الحمالين على إجراء تغييرات غير متوافقة مع الإصدارات السابقة
أكثر توافقًا مثل الميزة والوحدات النمطية المهملة. يرجى استخدامها عندما
المناسبة.
يمكن it be a وحدة في حين أن؟
يحتوي Perl 5 على آليات ملحقة ووحدات نمطية وXS، خصيصًا لتجنب الحاجة إلى الاحتفاظ بها
تغيير مترجم بيرل. يمكنك كتابة وحدات تقوم بتصدير الوظائف، ويمكنك تقديمها
هذه النماذج الأولية للوظائف بحيث يمكن استدعاؤها مثل الوظائف المضمنة، يمكنك حتى
اكتب رمز XS للعبث بهياكل بيانات وقت التشغيل لمترجم Perl إذا كنت تريد ذلك
لتنفيذ أشياء معقدة حقا.
كلما كان ذلك ممكنًا، يجب وضع نماذج أولية للميزات الجديدة في وحدة CPAN قبل أن يتم ذلك
تعتبر جوهر.
Is القادم ميزة عام كافية؟
هل هذا شيء يريد مقدمه فقط إضافته إلى اللغة ، أم أنه على نطاق واسع
مفيد؟ في بعض الأحيان، بدلاً من إضافة ميزة ذات تركيز محكم، قد يفعل الحمالون ذلك
قرر الانتظار حتى يقوم شخص ما بتنفيذ الميزة الأكثر عمومية.
لا it يحتمل تقديم جديد البق؟
إعادة الكتابة الجذرية لأجزاء كبيرة من مترجم Perl لديها القدرة على تقديمها
أخطاء جديدة.
كيفية كبير is ذلك؟
كلما كان التغيير أصغر وأكثر محلية، كلما كان ذلك أفضل. وبالمثل، سلسلة صغيرة
تُفضل الرقع بشكل كبير على رقعة واحدة كبيرة.
لا it منع أخرى مرغوب فيه المميزات؟
من المرجح أن يتم رفض التصحيح إذا أغلق سبل التنمية المستقبلية. ل
على سبيل المثال، من المرجح أن التصحيح الذي يضع تفسيرًا حقيقيًا ونهائيًا على النماذج الأولية
سيتم رفضه لأنه لا تزال هناك خيارات لمستقبل النماذج الأولية التي لم تكن موجودة
موجهة.
Is القادم التنفيذ قوي؟
تتمتع التصحيحات الجيدة (رمز محكم، كاملة، صحيحة) بفرصة أكبر للدخول
قد يتم وضع تصحيحات غير صحيحة على الموقد الخلفي حتى يتوفر الوقت لإصلاح الضخ،
أو قد يتم التخلص منها تمامًا دون إشعار آخر.
Is القادم التنفيذ عام كاف إلى be المحمولة؟
تستفيد أسوأ التصحيحات من ميزات خاصة بالنظام. من المستبعد جدًا أن
سيتم قبول الإضافات المحمولة إلى لغة Perl.
Is القادم التنفيذ اختبارها؟
يجب أن تتضمن التصحيحات التي تغير السلوك (إصلاح الأخطاء أو تقديم ميزات جديدة).
اختبارات الانحدار للتحقق من أن كل شيء يعمل كما هو متوقع.
بدون الاختبارات التي يقدمها المؤلف الأصلي، كيف يمكن لأي شخص آخر تغيير لغة Perl في
المستقبل هل تأكدوا من أنهم لم يخرقوا السلوك الذي يطبقه التصحيح عن غير قصد؟
وبدون اختبارات، كيف يمكن لمؤلف التصحيح أن يكون واثقًا من عمله الشاق الذي قام به
لن يتم التخلص من التصحيح عن طريق الخطأ من قبل شخص ما في المستقبل؟
Is هناك كاف توثيق؟
قد تكون التصحيحات بدون توثيق غير مدروسة أو غير كاملة. لا يمكن لأي ميزات
يمكن إضافتها أو تغييرها بدون توثيق، لذا يجب تقديم تصحيح للبود المناسب
المستندات وكذلك الكود المصدري مهم.
Is هناك طرق طريق إلى do ذلك؟
قال لاري "بالرغم من أن شعار بيرل كذلك هناك المزيد من واحد طريق إلى Do It، أتردد في ذلك
اصنع 10 طرق لفعل شيء ما". هذا إرشادي صعب للتنقل فيه - رجل واحد
الإضافة الأساسية هي عمل رجل آخر لا طائل من ورائه.
لا it خلق جدا كثيرا العمل؟
العمل من أجل الضخ، العمل لمبرمجي Perl، العمل لمؤلفي الوحدات، ... Perl هو
من المفترض أن تكون سهلة.
لاصقات تحدث بصوت أعلى من كلمات
يُفضل دائمًا رمز العمل على الأفكار الخيالية. رقعة لإضافة ميزة المدرجات
فرصة أكبر بكثير للوصول إلى اللغة مقارنة بطلب الميزة العشوائية ، لا
بغض النظر عن مدى الجدل القوي الذي قد يكون الطلب عليه. هذا يرتبط بـ "هل سيكون مفيدًا؟" ، مثل
حقيقة أن شخصًا ما استغرق وقتًا في عمل التصحيح يدل على رغبة قوية في
ميزة.
اختبارات الدخول
يستخدم النواة نفس أسلوب الاختبار مثل باقي لغة Perl ، وهي عبارة بسيطة "موافق / غير موافق"
الاختبار::الحزام، ولكن هناك بعض الاعتبارات الخاصة.
هناك ثلاث طرق لكتابة اختبار في المركز: Test::More، ر/test.pl والطباعة المخصصة
اختبار $؟ "حسنًا 42 \ n": "ليس جيدًا 42 \ n" ". يعتمد قرار الاستخدام على أي جزء من
مجموعة الاختبار التي تعمل عليها. هذا إجراء لمنع حدوث فشل عالي المستوى (مثل
ككسر Config.pm) من التسبب في فشل اختبارات الوظائف الأساسية.
إنّ كافة أنواع عهود الـ ر/test.pl توفر المكتبة بعض ميزات Test::More، ولكنها تتجنب تحميل معظمها
الوحدات النمطية ويستخدم أقل عدد ممكن من الميزات الأساسية.
إذا قمت بكتابة الاختبار الخاص بك، فاستخدم بروتوكول اختبار أي شيءhttp://testanything.org>.
· ر / قاعدة, ر / شركات و ر/أوباسيك
نظرًا لأننا لا نعرف ما إذا كان "يتطلب" العمل، أو حتى الإجراءات الفرعية، استخدم اختبارات مخصصة لـ
هؤلاء الثلاثة. قم بالخطوة بعناية لتجنب استخدام الميزة التي يتم اختبارها. الاختبارات في
ر/أوباسيك، على سبيل المثال ، تم وضعها هناك بدلاً من وضعها في قمة لأنهم يختبرون
الوظيفة التي ر/test.pl لقد تم بالفعل إثبات نجاح هذه الافتراضات.
· ر / كمد, ر / تشغيل, t/io و قمة
الآن هذا الأساسي يتطلب () ويتم اختبار الإجراءات الفرعية، يمكنك استخدام ر/test.pl
مكتبة.
يمكنك أيضًا استخدام مكتبات معينة مثل Config بشكل مشروط، ولكن تأكد من تخطي
اختبار بأمان إذا لم يكن هناك.
· كل شيء آخر
الآن بعد أن تم اختبار جوهر لغة Perl، يمكن ويجب استخدام Test::More. بامكانك ايضا
استخدم المجموعة الكاملة من الوحدات الأساسية في الاختبارات.
عندما تقول "make test"، يستخدم Perl الامتداد ر / اختبار برنامج لتشغيل مجموعة الاختبار (باستثناء ما يلي
Win32 حيث يستخدم ر / تسخير بدلاً من). يتم تشغيل كافة الاختبارات من t/ الدليل، ليست القادم
الدليل الذي يحتوي على الاختبار. هذا يسبب بعض المشاكل مع الاختبارات في ليب /، وبالتالي
وهنا بعض الفرص لبعض الترقيع.
يجب أن تكون مدركًا بشكل ثلاثي للمخاوف عبر الأنظمة الأساسية. هذا عادة ما يتلخص في الاستخدام
File::Spec، وتجنب أشياء مثل "fork()" و"system()" ما لم يكن ذلك ضروريًا للغاية، و
لا نفترض أن حرفًا معينًا له قيمة ترتيبية معينة (نقطة الكود) أو ذلك
يتكون تمثيل UTF-8 الخاص به من بايتات معينة.
هناك العديد من الوظائف المتاحة لتحديد الأحرف ونقاط التعليمات البرمجية بشكل محمول
الاختبارات. الوظائف المحملة مسبقًا دائمًا "utf8::unicode_to_native()" وعكسها
"utf8::native_to_unicode()" يأخذ نقاط الكود ويترجمها بشكل مناسب. الملف
ر / charset_tools.pl لديه العديد من الوظائف التي يمكن أن تكون مفيدة. لديها إصدارات من
الوظيفتان السابقتان اللتان تأخذان السلاسل كمدخلات - وليس نقاط رمز رقمية مفردة:
"uni_to_native()" و"native_to_uni()". إذا كان يجب أن ننظر إلى البايتات الفردية
يشتمل على سلسلة مشفرة UTF-8 ، يأخذ "byte_utf8a_to_utf8n ()" كمدخل سلسلة من
تلك البايتات المشفرة لمنصة ASCII ، وتعيد السلسلة المكافئة في الأصل
منصة. على سبيل المثال ، يعرض "byte_utf8a_to_utf8n (" \ xC2 \ xA0 ")" تسلسل البايت في
النظام الأساسي الحالي الذي يشكل UTF-8 لـ "U+00A0"، نظرًا لأن "\xC2\xA0" هي بايتات UTF-8 الموجودة
منصة ASCII لنقطة الرمز هذه. تقوم هذه الوظيفة بإرجاع "\ xC2 \ xA0" على ASCII
النظام الأساسي ، و "\ x80 \ x41" على أحد EBCDIC 1047.
ولكن الأسهل ، إذا كان يمكن تحديد الحرف كحرف حرفي ، مثل "A" أو "٪" ، فيتم استخدامه
الذي - التي؛ إذا لم تكن محددة جدًا، يمكنك استخدام "\N{}" ، إذا لم تكن الآثار الجانبية كذلك
مزعجة. ما عليك سوى تحديد كافة الأحرف بالشكل الست عشري، باستخدام "\N{U+ZZ}" بدلاً من ذلك
"\xZZ". "\N{}" هو اسم Unicode، ولذلك فهو يمنحك دائمًا حرف Unicode.
"\N{U+41}" هو الحرف الذي تكون نقطة كود Unicode الخاصة به هي 0x41، ومن ثم يكون "A" على الكل
المنصات. الآثار الجانبية هي:
1) حدد قواعد Unicode. وهذا يعني أنه في السلاسل ذات الاقتباس المزدوج، تكون السلسلة
يتم تحويله دائمًا إلى UTF-8 لفرض تفسير Unicode (يمكنك
"utf8::downgrade()" بعد ذلك للتحويل مرة أخرى إلى غير UTF8، إن أمكن). عادي
لأنماط التعبير ، فإن التحويل لا يتم ، ولكن إذا كان معدّل مجموعة الأحرف
وإلا سيكون "/ d" ، يتم تغييره إلى "/ u".
2) إذا كنت تستخدم النموذج "\N{حرف اسم}"، يتم الحصول على وحدة charnames تلقائيًا
محمل. قد لا يكون هذا مناسبًا لمستوى الاختبار الذي تقوم به.
إذا كنت تختبر اللغات (انظر perllocale)، فهناك وظائف مساعدة فيها t/loc_tools.pl
لتمكينك من معرفة اللغات الموجودة على النظام الأساسي الحالي.
ملصقات خاصة "يصنع امتحان" الأهداف
هناك العديد من الأهداف الخاصة التي يمكن استخدامها لاختبار Perl بشكل مختلف قليلاً
من هدف "الاختبار" القياسي. ليس من المتوقع أن يقدموا جميعًا نسبة نجاح 100٪.
العديد منهم لديهم عدة أسماء مستعارة، والعديد منهم غير متوفر في عمليات تشغيل معينة
الأنظمة.
· اختبار_النقل
يؤدي هذا إلى إجراء بعض اختبارات السلامة الأساسية على الشجرة المصدر ويساعد في اكتشاف الأخطاء الأساسية
قبل إرسال التصحيح.
· مينيتيست
يجري com.miniperl on ر / قاعدة, ر / شركات, ر / كمد, ر / تشغيل, t/io, قمة, ر / يوني و ر / مرو الاختبارات.
· test.valgrind check.valgrind
(فقط في Linux) قم بإجراء جميع الاختبارات باستخدام أداة الوصول إلى الذاكرة المشاغب وتسرب الذاكرة
"فالغريند". سيتم تسمية ملفات السجل testname.valgrind.
· اختبار السرج
قم بتشغيل مجموعة الاختبار باستخدام ر / تسخير برنامج التحكم بدلا من ر / اختبار.
ر / تسخير أكثر تعقيدًا ، ويستخدم وحدة Test :: Harness ، وبالتالي يستخدم هذا
يفترض هدف الاختبار أن لغة Perl تعمل في الغالب. الميزة الرئيسية لأغراضنا هي
أنه يطبع ملخصًا تفصيليًا للاختبارات الفاشلة في النهاية. أيضا، على عكس ر / اختبار، فإنه
لا يعيد توجيه stderr إلى stdout.
لاحظ أنه تحت Win32 ر / تسخير يستخدم دائما بدلا من ر / اختبار، لذا لا يوجد
هدف "test_harness" الخاص.
ضمن هدف "اختبار" Win32، يمكنك استخدام بيئة TEST_SWITCHES وTEST_FILES
المتغيرات للتحكم في سلوك ر / تسخير. هذا يعني أنه يمكنك القول
اختبار nmake TEST_FILES = "op/*.t"
اختبار nmake TEST_SWITCHES = "- التعذيب" TEST_FILES = "op/*.t"
· اختبار نوتي test_notty
يضبط PERL_SKIP_TTY_TEST على القيمة true قبل تشغيل الاختبار العادي.
موازية اختبارات
يمكن الآن للتوزيع الأساسي إجراء اختبارات الانحدار بالتوازي على منصات تشبه يونكس.
بدلاً من تشغيل "إجراء اختبار" ، اضبط "TEST_JOBS" في بيئتك على عدد الاختبارات
للتشغيل بالتوازي ، وتشغيل "make test_harness". على غلاف يشبه بورن ، يمكن القيام بذلك
as
TEST_JOBS = 3 قم بإجراء test_harness # قم بإجراء 3 اختبارات على التوازي
يتم استخدام متغير البيئة ، بدلاً من جعل نفسه متوازيًا ، لأن TAP :: Harness
يجب أن يكون قادرًا على جدولة نصوص اختبار فردية غير متضاربة بحد ذاتها ، وهناك
لا توجد واجهة قياسية "لإنشاء" أدوات مساعدة للتفاعل مع جدولة وظائفهم.
لاحظ أن بعض البرامج النصية التجريبية حاليًا قد تفشل عند تشغيلها بالتوازي (على الأخص
تحويلة/IO/t/io_dir.t). إذا لزم الأمر، قم بتشغيل البرامج النصية الفاشلة مرة أخرى بشكل تسلسلي وانظر
إذا اختفت الإخفاقات.
الركض اختبارات by يد
يمكنك تشغيل جزء من مجموعة الاختبار يدويًا باستخدام أحد الأوامر التالية من ملف
t/ دليل:
./بيرل -أنا../ ليب اختبار قائمة الملفات.t
or
./بيرل -أنا../ ليب تسخير قائمة ملفات .t-
(إذا لم تقم بتحديد البرامج النصية للاختبار، فسيتم تشغيل مجموعة الاختبار بأكملها.)
باستخدام ر / تسخير لـ تجريب
إذا كنت تستخدم "تسخير" للاختبار ، فلديك العديد من خيارات سطر الأوامر المتاحة لك.
الوسائط هي كما يلي، وهي بالترتيب الذي يجب أن تظهر به في حالة استخدامها معًا.
harness -v -torture -re = نمط قائمة الملفات للاختبار
Harness -v -torture -re قائمة الأنماط التي يجب مطابقتها
إذا تم حذف "قائمة الملفات المطلوب اختبارها"، فسيتم الحصول على قائمة الملفات من البيان. ال
قد تتضمن قائمة الملفات أحرف البدل الخاصة بالصدفة والتي سيتم توسيعها.
· -الخامس
قم بإجراء الاختبارات في الوضع المطول حتى تتمكن من رؤية الاختبارات التي تم إجراؤها وتصحيح الأخطاء.
· -يعذب
قم بإجراء اختبارات التعذيب بالإضافة إلى المجموعة العادية.
· -re = نمط
قم بتصفية قائمة الملفات بحيث تتطابق كافة ملفات الاختبار مع النمط. لاحظ أن هذا
يختلف الشكل عن -إعادة قائمة OF أنماط - رسم النموذج أدناه لأنه يسمح للملف
القائمة التي سيتم توفيرها كذلك.
· -إعادة قائمة الأنماط
قم بتصفية قائمة الملفات بحيث تتطابق كافة ملفات الاختبار مع /(LIST|OF|PATTERNS)/. ملاحظات
أنه بهذا الشكل يتم ربط الأنماط بـ "|" ولا يمكنك توفير قائمة
بدلاً من ذلك ، يتم الحصول على ملفات الاختبار من MANIFEST.
يمكنك إجراء اختبار فردي بواسطة أمر مشابه لـ
./بيرل -أنا../ ليب المسار/إلى/foo.t
باستثناء أن الأدوات تقوم بإعداد بعض متغيرات البيئة التي قد تؤثر على التنفيذ
من الاختبار:
· بيرل_كور=1
يشير إلى أننا نقوم بإجراء هذا الاختبار كجزء من مجموعة اختبار Perl الأساسية. هذا هو
مفيد للوحدات التي لها عمر مزدوج في CPAN.
· بيرل_ديستروكت_ليفل=2
مضبوط على 2 إذا لم يتم تعيينه بالفعل (راجع "PERL_DESTRUCT_LEVEL" في perlhacktips).
· بيرل
(يستخدم فقط من قبل ر / اختبار) إذا تم تعيينه، فإنه يتجاوز المسار إلى الملف القابل للتنفيذ Perl الذي ينبغي أن يكون
تستخدم لتشغيل الاختبارات (الكائن الافتراضي ./بيرل).
· بيرل_SKIP_TTY_TEST
إذا تم ضبطه، فإنه يخبرك بتخطي الاختبارات التي تحتاج إلى محطة طرفية. لقد تم ضبطه تلقائيًا في الواقع
بواسطة Makefile، ولكن يمكن أيضًا فرضه بشكل مصطنع عن طريق تشغيل "make test_notty".
أخرى بيئة المتغيرات أن قد تأثير اختبارات
· بيرل_TEST_Net_Ping
يؤدي تعيين هذا المتغير إلى تشغيل جميع اختبارات الوحدات النمطية Net::Ping، وإلا فإن بعض اختبارات ذلك
يتم تخطي التفاعل مع العالم الخارجي. انظر بيرل58دلتا.
· بيرل_TEST_NOVREXX
يؤدي تعيين هذا المتغير إلى تخطي اختبارات vrexx.t لنظام التشغيل OS2::REXX.
· PERL_TEST_NUMCONVERTS
يؤدي هذا إلى تعيين متغير في op/numconvert.t.
· بيرل_TEST_MEMORY
يتضمن تعيين هذا المتغير الاختبارات الموجودة في ر/بيجميم/. يجب ضبط هذا على
عدد غيغابايت من الذاكرة المتاحة للاختبار، على سبيل المثال. "PERL_TEST_MEMORY=4"
يشير إلى أنه يمكن إجراء الاختبارات التي تتطلب 4 جيجا بايت من الذاكرة المتوفرة بأمان.
راجع أيضًا الوثائق الخاصة بوحدات Test and Test :: Harness النمطية لمزيد من البيئة
المتغيرات التي تؤثر على الاختبار.
الأداء تجريب
الملف ر/الأداء/المعايير يحتوي على مقتطفات من كود بيرل المقصود منها أن تكون
تم قياسها عبر مجموعة من Perls بواسطة بورتينغ/bench.pl أداة. إذا قمت بإصلاح أو تعزيز أ
مشكلة في الأداء، قد ترغب في إضافة نموذج تعليمات برمجية تمثيلية إلى الملف، ثم تشغيله
bench.pl مقابل بيرلس السابقة والحالية لمعرفة الفرق الذي أحدثته ، و
ما إذا كان أي شيء آخر قد تباطأ نتيجة لذلك.
الملف t/perf/opcount.t تم تصميمه لاختبار ما إذا كان مقتطف رمز معين قد تم
تم تجميعها في شجرة بصرية تحتوي على أرقام محددة من أنواع العمليات المحددة. هذا جيد
لاختبار ما إذا كانت التحسينات التي تغير العمليات، مثل تحويل عملية "aelem" إلى
المرجع "aelemfast"، يفعلون ذلك حقًا.
الملفات t/الأداء/speed.t و ر/إعادة/سرعة.t تم تصميمها لاختبار الأشياء التي تعمل بالآلاف
مرات أبطأ إذا تم كسر تحسين معين (على سبيل المثال، ذاكرة التخزين المؤقت لطول utf8
على سلاسل utf8 الطويلة). أضف اختبارًا يستغرق جزءًا من الثانية بشكل طبيعي، و
دقيقة، وإلا فسيؤدي ذلك إلى انتهاء مهلة ملف الاختبار عند الفشل.
أكثر قراءة لأي مصارين قراصنة
لاختراق شجاعة Perl ، ستحتاج إلى قراءة الأشياء التالية:
· بيرلسورس
نظرة عامة على شجرة مصدر بيرل. سيساعدك هذا في العثور على الملفات التي تبحث عنها
ل.
· بيرلينترب
نظرة عامة على الكود المصدري لمترجم Perl وبعض التفاصيل حول كيفية قيام Perl بماذا
نعم هو كذلك.
· بيرلهاكتوت
تتناول هذه الوثيقة إنشاء تصحيح صغير لكود Perl's C. إذا كنت
لقد بدأت للتو في استخدام Perl Core hacking، وهذا سيساعدك على فهم كيفية القيام بذلك
الأشغال.
· نصائح الاختراق
مزيد من التفاصيل حول اختراق لغة Perl الأساسية. تركز هذه الوثيقة على تفاصيل المستوى الأدنى
مثل كيفية كتابة الاختبارات، ومشكلات التجميع، وقابلية النقل، وتصحيح الأخطاء، وما إلى ذلك.
إذا كنت تخطط للقيام بعملية اختراق جادة للغة C، فتأكد من قراءة هذا.
· بيرلجوتس
وهذا أمر بالغ الأهمية، لأنه توثيق لما يجري
مصدر بيرل. إقرأها عدة مرات وقد تجد معنىً لها
لا تقلق إذا لم يحدث ذلك بعد، لأن أفضل طريقة لدراستها هي قراءتها
بالتزامن مع بدس مصدر بيرل، وسنفعل ذلك لاحقًا.
جيزل آس "بيرلجوتس المصور" ، المعروف أيضًا باسم المعتلين، يحتوي على صور مفيدة جدًا:
<http://search.cpan.org/dist/illguts/>
· بيرلكسستوت و بيرلكسس
تعتبر المعرفة العملية ببرمجة XSUB مفيدة بشكل لا يصدق للقرصنة الأساسية ؛ XSUBs
استخدم تقنيات مستمدة من كود PP، وهو الجزء من الشجاعة الذي يتم تنفيذه فعليًا
برنامج بيرل. من اللطيف جدًا تعلم هذه التقنيات من الأمثلة البسيطة و
تفسير من الجوهر نفسه.
· بيرلابي
تشرح وثائق Perl API ما تفعله بعض الوظائف الداخلية، مثل
وكذلك العديد من وحدات الماكرو المستخدمة في المصدر.
· بورتينغ/pumpkin.pod
هذه مجموعة من الكلمات الحكيمة لحمال بيرل؛ بعضها مفيد فقط
لحامل اليقطين، ولكن معظمها ينطبق على أي شخص يرغب في التعامل مع لغة بيرل
التنمية.
CPAN المختبرين لأي لبس PERL مدخني
مختبرو CPAN ( http://testers.cpan.org/ ) هم مجموعة من المتطوعين الذين يختبرون CPAN
وحدات على مجموعة متنوعة من المنصات.
بيرل مدخنون ( http://www.nntp.perl.org/group/perl.daily-build/ و
http://www.nntp.perl.org/group/perl.daily-build.reports/ ) اختبار مصدر بيرل تلقائيًا
الإصدارات على منصات مع تكوينات مختلفة.
كلا الجهدين يرحبان بالمتطوعين. من أجل المشاركة في اختبار الدخان للبيرل
زيارة نفسهاhttp://search.cpan.org/dist/Test-Smoke/>. من أجل البدء في اختبار الدخان
زيارة وحدات CPANhttp://search.cpan.org/dist/CPANPLUS-YACSmoke/> أو
<http://search.cpan.org/dist/minismokebox/> أو
<http://search.cpan.org/dist/CPAN-Reporter/>.
ما التالي؟
إذا كنت قد قرأت جميع الوثائق الموجودة في المستند وتلك المذكورة أعلاه، فأنت كذلك
أكثر من جاهز لاختراق لغة Perl.
إليك بعض التوصيات الإضافية
· اشترك في perl5-porters، واتبع التصحيحات وحاول فهمها؛ لا تكن
تخشى أن تسأل عما إذا كان هناك جزء لست واضحًا بشأنه - من يدري ، قد تكتشف a
خطأ في التصحيح...
· قم بقراءة الملف README المرتبط بنظام التشغيل الخاص بك، على سبيل المثال README.aix الموجود على IBM
نظام تشغيل AIX. لا تتردد في تقديم التصحيحات إلى ملف README هذا إذا وجدت أي شيء مفقود
أو تم تغييرها عبر إصدار جديد لنظام التشغيل.
· ابحث عن منطقة من Perl تبدو مثيرة للاهتمام بالنسبة لك ، واعرف ما إذا كان يمكنك معرفة كيفية القيام بذلك
يعمل. قم بالمسح عبر المصدر، ثم تجاوزه في مصحح الأخطاء. لعب ، كزة ،
التحقيق، كمان! من المحتمل أنك لن تفهم فقط المنطقة التي اخترتها، بل أيضًا
نطاق أوسع بكثير من بيرلنشاط s أيضًا، وربما في وقت أقرب مما تعتقد.
"إن الطريق يذهب أبدا on و واحد؛ إلى أسفل تبدأ من القادم باب أين it بدأ."
إذا كان بإمكانك القيام بهذه الأشياء، فقد بدأت الطريق الطويل لنقل لغة Perl. شكرا لك على
الرغبة في المساعدة في جعل لغة Perl أفضل - وتسعد بالقرصنة!
مجازي الاقتباسات
إذا تعرفت على الاقتباس عن الطريق أعلاه ، فأنت محظوظ.
تبدأ معظم مشاريع البرامج كل ملف بوصف حرفي لغرض كل ملف.
بدلاً من ذلك، يبدأ بيرل كل منها بإشارة أدبية إلى غرض هذا الملف.
مثل الفصول الموجودة في العديد من الكتب ، كل ملفات مصدر Perl عالية المستوى (بالإضافة إلى عدد قليل من الملفات الأخرى الموجودة هنا
وهناك) يبدأ بنقش كتابي يلمح بشكل غير مباشر إلى و
مجازيًا ، للمادة التي توشك على قراءتها.
الاقتباسات مأخوذة من كتابات جي آر آر تولكين المتعلقة بكتابه الأسطوري، تقريبًا
دائما من إنّ كافة أنواع عهود الـ اللورد of القادم خواتم. يتم إعطاء الفصول وأرقام الصفحات باستخدام
الإصدارات التالية:
· إنّ كافة أنواع عهود الـ الهوبيتبقلم جي آر آر تولكين. كان الغلاف المقوى، طبعة الذكرى السبعين لعام 70
تم استخدامه ونشره في المملكة المتحدة بواسطة Harper Collins Publishers وفي الولايات المتحدة بواسطة Houghton
شركة ميفلين.
· إنّ كافة أنواع عهود الـ اللورد of القادم خواتمبواسطة JRR تولكين. الغلاف الصلب ، طبعة الذكرى الخمسين من
تم استخدام 2004، وتم نشره في المملكة المتحدة بواسطة دار نشر هاربر كولينز وفي الولايات المتحدة بواسطة دار نشر هاربر كولينز
شركة هوتون ميفلين.
· إنّ كافة أنواع عهود الـ يضع of بيليرياند، بقلم جيه آر آر تولكين ونشرها بعد وفاته ابنه و
المنفذ الأدبي، سي جيه آر تولكين، هو المجلد الثالث من المجلدات الـ 3 في كريستوفر
ضخم تاريخنا of وسط أرض. أرقام الصفحات مستمدة من طبعة الغلاف الصلب،
نُشر لأول مرة عام 1983 بواسطة George Allen & Unwin؛ لم يتم تغيير أي أرقام صفحات لـ
طبعة شاملة مكونة من 3 مجلدات لعام 2002 أو الإصدارات الورقية التجارية المختلفة ، جميعها
مرة أخرى الآن بواسطة هاربر كولينز أو هوتون ميفلين.
وبالتالي فإن اللعبة العادلة لكتب JRRT الأخرى تتضمن عروض الأسعار إنّ كافة أنواع عهود الـ مغامرات of توم بومباديل,
إنّ كافة أنواع عهود الـ Silmarillion, ناقص مثلو إنّ كافة أنواع عهود الـ حكاية of القادم أطفال of هورين، الكل ما عدا
تم تجميعه لأول مرة بعد وفاته بواسطة CJRT. لكن إنّ كافة أنواع عهود الـ اللورد of القادم خواتم في حد ذاته على ما يرام تماما
وربما يكون من الأفضل الاقتباس منه، بشرط أن تتمكن من العثور على عرض أسعار مناسب هناك.
لذا، إذا كنت تريد توفير ملف مصدر جديد وكامل وعالي المستوى لإضافته إلى Perl، فيجب عليك ذلك
تتوافق مع هذه الممارسة الغريبة من خلال اختيار اقتباس مناسب من
تولكين، مع الاحتفاظ بالتهجئة الأصلية وعلامات الترقيم واستخدام نفس التنسيق
باقي الاقتباسات موجودة. غير المباشرة والمائلة جيدة تمامًا؛ تذكر، إنها استعارة،
لذا فإن كونك ميتا هو ، بعد كل شيء ، ما هو الغرض منه.
استخدم Perlhack عبر الإنترنت باستخدام خدمات onworks.net