سؤال

لدي بعض الكود من http://www.hyllander.org/node/23 الذي يستخدم $* ("Dollar Asterisk" أو "Dollar Star") ، لكن روايتي من Perl تقارير:

$* is no longer supported at migrate.pl line 284.

هل تعرف ما هي الآثار الجانبية للقيام بها

$*=1

فعل ذلك يؤثر بطريقة أو بأخرى على وظائف مثل split أو الرمز المميزات أو التعبيرات العادية؟

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

المحلول

إليك جزء من إخراج perldoc perlvar:

$* تم تعيينه على قيمة عدد صحيح غير صفري للقيام بمطابقة متعددة الخطوط داخل سلسلة ، 0 (أو غير محددة) لإخبار بيرل أنه يمكن أن تفترض أن السلاسل تحتوي على سطر واحد ، لغرض تحسين تطابقات الأنماط. يمكن أن تنتج تطابقات الأنماط على السلاسل التي تحتوي على عدة خطوط جديدة نتائج مربكة عندما يكون $* 0 أو غير محدد. الافتراضي غير محدد. (ذئبوني: * يطابق أشياء متعددة.) يؤثر هذا المتغير على تفسير فقط "^" و "$". يمكن البحث عن خط جديد حرفي حتى عندما "$* == 0".

يتم إهمال استخدام $* في Perl الحديثة ، وتحل محلها المعدلات "/s" و "/m" على مطابقة الأنماط.

يؤدي تعيين قيمة غير numerical إلى $* إلى تحذير (ويجعل $* ACT إذا "$* == 0") ، مع تعيين قيمة رقمية إلى $* يجعل "int" ضمنيًا على القيمة.

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