لماذا يقوم برنامج Perl بطباعة رسالة المساعدة عند وجود حجج 0 كقيمة؟

StackOverflow https://stackoverflow.com/questions/2417929

سؤال

إذا قمت بذلك:

GetOptions(
    'u=s'    => \$in_username,
    'r=i'   => \$in_readonly,
    'b=i' => \$in_backup
    );

exit usage() unless $in_username && $in_readonly && $in_backup;

واتصل بالبرنامج مثل هذا:

./app.pl -u david -r 12 -b 0

يؤدي دائما إلى استدعاء الاستخدام ()، لذلك من الواضح أن 0 لا ينظر إلى القيمة العددية. ماذا يمكنني أن أقبل القيم الصحيحة و 0؟

هل كانت مفيدة؟

المحلول

عندما تعامل بأنه منطقي، يعتبر 0 قيمة خاطئة من قبل بيرل

تحتاج إلى شيء مثل

exit usage() unless defined($in_username) && defined($in_readonly) && defined(in_backup);

تعديل

يرجى أيضا الاطلاع على تعليق MSW الممتاز على السؤال الأصلي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top