ماذا استخدم متغير $* من بيرل؟
-
21-09-2019 - |
سؤال
لدي بعض الكود من 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" ضمنيًا على القيمة.