سؤال

أحاول أن أفهم كود Perl الخاص بشخص آخر دون أن أعرف الكثير عن لغة Perl بنفسي.انا اقدر مساعدتك.

لقد واجهت وظيفة Perl على هذا المنوال:

MyFunction($arg1,$arg2__size,$arg3)

هل هناك معنى لبناء جملة الشرطة السفلية المزدوجة في $arg2, أم أنها مجرد جزء من اسم الوسيطة الثانية؟

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

المحلول

لا يوجد معنى محدد لاستخدام __ داخل اسم متغير Perl.من المحتمل أن يكون هذا هو تفضيل المبرمج، خاصة في الحالة التي ذكرتها في سؤالك.يمكنك رؤية المزيد من المعلومات حول تسمية متغيرات Perl هنا.

نصائح أخرى

كما هو الحال في معظم اللغات، فإن الشرطة السفلية هي مجرد جزء من المعرف؛لا معنى خاصا.

ولكن هل أنت متأكد من أنه بيرل؟لا توجد أي سيجيلز على المتغيرات.هل يمكنك نشر المزيد من السياق؟

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

غالبًا ما يتم استخدام الشرطة السفلية للإشارة إلى أن المعرف مخصص للاستخدام المحلي فقط، على سبيل المثال للأجزاء غير المصدرة من الوحدة النمطية.إنها مجرد اتفاقية.المترجم لا يهتم.

في سياق سؤالك، ليس للشرطة السفلية المزدوجة أي معنى برمجي.الشرطات السفلية المزدوجة تعني شيئًا خاصًا لعدد محدود من القيم في لغة Perl، على الأخص __FILE__ & __LINE__.هذه هي حروف خاصة غير مسبوقة بعلامة ($, % أو @) ويتم تحريفها فقط خارج علامات الاقتباس.أنها تحتوي على المسار الكامل واسم الملف الذي يتم تنفيذه حاليًا والخط الذي يتم تنفيذه.راجع القسم الخاص بـ "الحرف الخاصة" في com.perldata أو هذا المنصب على بيرل مونكس

أنا متأكد تمامًا من أن arg2__size هو مجرد اسم متغير.

إجابة مارك صحيحة بالطبع، وليس لها أي معنى خاص.

لكني أريد أن أشير إلى أن مثالك لا يشبه لغة Perl على الإطلاق.متغيرات بيرل ليست مجرد كلمات.لديهم سيجيلز، كما سترون من الروابط أعلاه.ولغة Perl لا تحتوي على "وظائف"، بل لديها إجراءات فرعية.

لذلك قد يكون هناك بعض الالتباس حول اللغة التي نتحدث عنها.

ستحتاج إلى إخبار المترجم أن "$arg2" هو اسم متغير.وليس "$arg2__size".لهذا سوف تحتاج إلى استخدام الأقواس.(هذا الاستخدام مشابه لذلك الذي يظهر في الصدفة).

يجب أن يعمل هذا myFunction ($ arg1 ، $ {arg2} __ size ، $ arg3)

--بينو

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