يتم تعريف بعض المتغيرات الخاصة في لغة Perl، وعادةً ما تكون مسبوقة بـ $ أو @ أو %، على سبيل المثال: $_.
العديد من المتغيرات الخاصة لها اسم إنجليزي طويل، ويمكن كتابة متغير نظام التشغيل $!
إذا كنت تريد استخدام متغيرات خاصة بأسماء إنجليزية، فأنت بحاجة إلى إضافة use English؛ وهذا يسمح باستخدام المتغيرات الخاصة الإنجليزية الوصفية.
المتغير الخاص الأكثر استخدامًا هو $_، والذي يحتوي على محتوى المدخلات الافتراضية ومطابقة الأنماط. الأمثلة هي كما يلي:
بتنفيذ البرنامج أعلاه تكون نتيجة الإخراج هي:
GoogleCoderctoTaobao
في الأمثلة التالية، لا نستخدم $_ لإخراج المحتوى:
بتنفيذ البرنامج أعلاه تكون نتيجة الإخراج هي:
GoogleCoderctoTaobao
في المثال، يتم إخراج "Google" أولاً، ثم يتم إخراج "Codercto"، وأخيرًا يتم إخراج "Taobao".
في الحلقة التكرارية، سيتم وضع سلسلة الحلقة الحالية في $_، ثم يتم إخراجها من خلال الطباعة. بالإضافة إلى ذلك، لا تحدد print متغير الإخراج، ويتم استخدام $_ افتراضيًا.
فيما يلي بعض الأماكن التي سيفترض فيها Perl $_ حتى لو لم يتم تحديده:
وظائف أحادية متنوعة، بما في ذلك وظائف مثل ord() وint() وجميع عمليات اختبار الملفات ("-f"، "-d") باستثناء "-t"، التي تعمل على STDIN افتراضيًا.
وظائف القائمة المختلفة مثل الطباعة () وإلغاء الارتباط ().
عمليات مطابقة الأنماط "m//" و"s///" و"tr///" بدون عامل التشغيل "=~".
متغير التكرار الافتراضي لحلقات "foreach" عندما لا يتم إعطاء أي متغيرات أخرى.
متغيرات التكرار الضمنية لوظائف grep() وmap().
عندما يكون لـ "while" شرط واحد فقط، ويقوم هذا الشرط باختبار نتيجة العملية ""، فإن $_ هو الموقع الافتراضي لسجل الإدخال. وهذا لا يحدث إلا في ظروف الاختبار "بينما". (تذكيري: يمكن حذف الشرطة السفلية في عمليات معينة.)
وفقاً لطبيعة استخدام المتغيرات الخاصة يمكن تقسيمها إلى الفئات التالية:
المتغير الخاص العددي العالمي.
مجموعة المتغيرات الخاصة العالمية.
متغير خاص للتجزئة العالمية.
مقبض ملف خاص عالمي.
الثوابت العالمية الخاصة.
المتغيرات الخاصة للتعبير العادي.
التعامل مع الملف متغير خاص.
يسرد ما يلي جميع المتغيرات العددية الخاصة، بما في ذلك المتغيرات ذات الأحرف الخاصة والنماذج الإنجليزية:
| $_ | الإدخال الافتراضي ومحتوى مطابقة النمط. |
| $ARG | |
| $. | رقم السطر الحالي لمقبض الملف الذي تمت قراءته آخر مرة |
| $NR | |
| $/ | أدخل فاصل السجلات، الذي يتم تعيينه افتراضيًا على حرف سطر جديد. إذا كنت تستخدم المتغير undef، فسيتم قراءة نهاية الملف. |
| $RS | |
| $، | فاصل حقل الإخراج |
| $OFS | |
| $ | فاصل سجل الإخراج |
| $ ORS | |
| $" | يشبه هذا المتغير $، ولكن يجب استخدامه لاستكمال قيم المصفوفة وتقسيمها إلى سلاسل ذات علامات اقتباس مزدوجة (أو سلاسل محرفة مماثلة). الإعدادات الافتراضية لمسافة واحدة. |
| $LIST_SEPARATOR | |
| $; | المحدد المستخدم عند محاكاة المصفوفات متعددة الأبعاد. الافتراضي هو " |