الفرعية :: العقد

التحميل الان

الفرعية :: العقد الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • Perl Artistic License
  • السعر:
  • FREE
  • اسم الناشر:
  • Erwan Lemonnier
  • موقع ويب الناشر:
  • http://search.cpan.org/~erwan/Sub-Contract-0.09/lib/Sub/Contract.pm

الفرعية :: العقد العلامات


الفرعية :: العقد وصف

SUB :: وحدة العقد تقدم برامج التعاقد البراغماتية ل PERL. SUB :: وحدة العقد تقدم برامج العقد البراغماتية ل perl.synopsisfirst من الجميع، يجب عليك تحديد مكتبة من قيود نوع الزائفة. قيد النوع هو الروتين الفرعي الذي يعود صحيحا إذا كانت الوسيطة إذا كان النوع الصحيح، وإرجاع False أو Croaks إن لم يكن. مثال: استخدم Regexp :: شائع؛ # اختبار هذا المتغير هو is_integer عددا صحيحا {بلدي $ i = التحول؛ إرجاع 0 إذا (! محددة $ I)؛ إرجاع 0 إذا (ref $ I NE "")؛ إرجاع 0 إذا ($ i! ~ / ^ $ re {num} {int} $ /)؛ العودة 1 } sub is_shortdate {...} sub is_Account_number {...} sub is_amount {...} # وهلم جرا ... لتعاقد وظيفة "السطح" التي تأخذ قائمة من الأعداد الصحيحة 2 وإرجاع 1 عدد صحيح: استخدم Sub :: العقد QW (العقد)؛ العقد (السطح ") -> في (is_integer، is_integer) -> خارج (is_integer) -> تمكين؛ سطح فرعي {# لا حاجة للتحقق من صحة الحجج بعد الآن! # فقط قم بتنفيذ المنطق: العودة $ _ * $ _ ؛ } منذ نتيجة "السطح" هي وظيفة لحجج الإدخال الخاصة بها فقط، قد نريد أن يتم حفظ (ذاكرة التخزين المؤقت): العقد ("السطح") -> في (is_integer، is_integer) -> خارج (is_integer) -> memoize -> تمكين؛ إذا استغرق "السطح" تجزئة 2 أعداد صحيحة بدلا من ذلك، مع ارتفاع مفاتيح "العرض" و "العرض": استخدم SUB :: العقد QW (العقد)؛ العقد ("السطح") -> في (الارتفاع => is_integer، العرض => is_integer) -> خارج (is_integer) -> تمكين؛ سطح فرعي {my args = @؛ Return $ Args {الارتفاع} * $ args {width}؛ } بالطبع، مثال حياة حقيقي هو أكثر من ذلك هو الشكل: استخدم Sub :: العقد QW (العقد IS_A)؛ # تعاقد الطريقة "SEND_MONEY" من Class "My :: حساب" حساب "(" SEND_MONEY ") -> في (حساب is_a ('My :: حساب")، إلى => is_a (حسابي :: حساب ")، > is_integer، date => is_date) -> خارج (is_a ('my :: statuscode')) -> تمكين؛ # ودعوة إلى "send_money" قد تبدو: حسابي $ 1 = حساب جديد My :: ("أنت")؛ حسابي $ 200 = حساب جديد My :: ("ME")؛ حساب $ 1-> send_money (to => حساب $ 2، المبلغ => 1000، تاريخ => "2008-06-16")؛ لجعل حجة قيمة الإرجاع خالية من القيد، فقط ضبط قيدها على UNDIF: العقد (" Send_money تعلن الثباتات، وظروف ما قبل وما بعدها كما هو الحال في تطبيقات برمجة العقد المعتادة: العقد ('FOO') -> قبل (Validate_state_before) -> Post (Validate_state_after) -> Invariant (Validate_state) -> تمكين؛ لإيقاف جميع العقود داخل أعاسب مساحات مطابقة '^ My :: حساب ::. * $' استخدم sub :: العقد :: بركة QW (get_contract_pool)؛ بلدي $ pool = get_contract_pool ()؛ Foreach My TAGE $ ($ pool-> find_contracts_matching ("حسابي :: حساب ::. *") {$ content-> تعطيل؛ } يمكنك سرد العقود أثناء وقت التشغيل وتعديلها وإعادة ترجمةها بشكل حيوي، أو إيقافها فقط. انظر "Sub :: العقد :: تجمع" للحصول على التفاصيل. متطلبات: perl.


الفرعية :: العقد برامج ذات صلة