لماذا يُبلغ البرنامج النصي الخاص بي عن "قيمة غير مهيأة في"سلسلة" تقييمية؟
سؤال
أتلقى هذا التحذير:
Use of uninitialized value in eval \"string\" at myscript.pl line 57.
عندما أقوم بتشغيل هذا الكود:
eval;
{
`$client -f $confFile -i $inputFile -o $outputFile`;
};
if( $@ )
{
# error handling here ...
}
ما الذي يسبب الخطأ؟
كيف يمكنني إصلاح السبب الأساسي؟(أو قم بقمع التحذير بطريقة أخرى؟)
المحلول
وهناك فاصلة منقوطة بعد eval
.
نصائح أخرى
التقييم هنا لن يفعل شيئًا على الإطلاق على أي حال.Backticks لا ترمي الأخطاء أبدًا.ليست كذلك $@
لكن $?
التي تريد التحقق منها.
أيضًا، إذا كنت تتخلص من النتيجة، فقد تكون فكرة أنظف للاستخدام نظام.على سبيل المثال
system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
#error handling here...
};
لا تنتمي إلى StackOverflow