البرمجة

تحديد قيم خيارات الأوامر في Perl

عند استخدام مكتبة Getopt::Long في برنامج Perl لمعالجة الخيارات الطويلة، يتم تحديد الخيارات المسموح بها مسبقًا باستخدام تعريفات الخيارات، وعادة ما يتم تحديد القيم المقبولة لكل خيار. في حالتك، لديك تعريف خيار ‘errorcode=s{1,}’ الذي يقبل قيمة نصية واحدة أو أكثر.

عندما تقوم بإدخال ‘–ecode 500’، يتم فهم ذلك على أن القيمة ‘500’ تعتبر جزءًا من القيم المقبولة للخيار ‘errorcode’، وبالتالي لا تتسبب في وقوع خطأ. ولكن عندما تقوم بإدخال ‘–testing 123’، فإن البرنامج لا يتوقع وجود خيار يسمى ‘testing’، وبالتالي يتم إحداث خطأ.

إذا كنت ترغب في جعل البرنامج يتوقف ويُظهر رسالة خطأ عند إدخال قيم غير معترف بها للخيارات، فيمكنك إضافة التحقق من القيم بشكل يدوي بعد استدعاء GetOptions. على سبيل المثال، يمكنك التحقق من أن قيمة ‘errorcode’ موجودة في قائمة القيم المقبولة قبل استخدامها في البرنامج.

المزيد من المعلومات

عند استخدام مكتبة Getopt::Long في Perl، يمكن تعريف الخيارات باستخدام تعابير القوائم، والتي تحدد الأنواع المقبولة للقيم لكل خيار. على سبيل المثال، ‘errorcode=s{1,}’ يعني أن الخيار ‘errorcode’ يجب أن يكون له قيمة نصية (s) واحدة على الأقل ({1,}). هذا يعني أنه يمكنك تمرير قيم متعددة لهذا الخيار.

في حالة إدخال ‘–ecode 500’، يعتبر البرنامج أن ‘500’ هو جزء من القيم المقبولة للخيار ‘errorcode’، وبالتالي لا توجد مشكلة. ومن الجدير بالذكر أن ‘ecode’ هو ما يعرف بالشكل القصير للخيار ‘errorcode’، وهذا يعتمد على كيفية تعريف الخيارات.

إذا كنت ترغب في جعل البرنامج يتوقف عند إدخال قيم غير صحيحة، يمكنك إما تنفيذ التحقق يدويًا بعد استدعاء GetOptions كما ذكرت سابقًا، أو يمكنك استخدام مكتبة مثل Getopt::Long::Descriptive التي توفر طريقة لتحديد تفصيلي للخيارات مما يسهل عليك التحقق من القيم بشكل أكثر دقة.

زر الذهاب إلى الأعلى