سؤال

لا أفهم حقًا كيف يعمل النطاق في وحدات Perl. هذا لا يطبع أي شيء. أود ذلك إذا كان تشغيل A.Pl مطبوع 1

ب

$f=1;

A.Pl

use b;

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

المحلول

حسنًا ، لديك الكثير من المفاهيم الخاطئة التي يمكننا معالجتها على أفضل وجه من خلال إصلاح مشكلتك الفورية وإشارةك إلى موارد جيدة.

يجب أن يكون B.PM:

package b;
our $f = 1;
1;

يجب أن يكون A.Pl

use b;
print $b::f

تشغيل كل شيء مع perl -I. a.pl

الآن اذهب للقراءة perldocperlmod حذر جدا.

اقرأ أيضا perldocstrict.

نصائح أخرى

يجب أن تبدأ من خلال القراءة حول وحدات Perl في الدليل: perldoc perlmod في سطر الأوامر ، أو انتقل إلى http://perldoc.perl.org/perlmod.html.

الإجابة المختصرة: على الأرجح لأنك تقوم بتشغيل هذا الرمز على نظام ملفات غير حساسة للحالة ، حيث تطلب الوحدة النمطية b يحمل الوحدة المدمجة B. الوحدة الخاصة بك لا يتم تحميلها على الإطلاق. إذا قمت بإعادة تسمية b, ، تحصل على النتيجة التي تتوقعها.

وشملت الإجابة الأطول الكثير من التضخيم لفشلها في مراقبة الحد الأدنى من الممارسات الجيدة ، وقد تم إبطالها.

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