ตัวแปรพิเศษบางตัวถูกกำหนดในภาษา Perl ซึ่งมักจะขึ้นต้นด้วย $, @ หรือ % เช่น: $_
ตัวแปรพิเศษหลายตัวมีชื่อภาษาอังกฤษแบบยาว ตัวแปรระบบปฏิบัติการ $!
หากคุณต้องการใช้ตัวแปรพิเศษที่มีชื่อเป็นภาษาอังกฤษ คุณต้องเพิ่ม use English ไว้ที่ส่วนหัวของโปรแกรม ซึ่งช่วยให้สามารถใช้ตัวแปรพิเศษภาษาอังกฤษเชิงพรรณนาได้
ตัวแปรพิเศษที่ใช้กันมากที่สุดคือ $_ ซึ่งมีเนื้อหาอินพุตและการจับคู่รูปแบบเริ่มต้น ตัวอย่างมีดังนี้:
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
GoogleCoderctoTaobao
ในตัวอย่างต่อไปนี้ เราไม่ได้ใช้ $_ เพื่อส่งออกเนื้อหา:
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
GoogleCoderctoTaobao
ในตัวอย่าง "Google" จะถูกส่งออกก่อน จากนั้น "Codercto" จะถูกส่งออก และสุดท้ายคือ "Taobao" จะถูกส่งออก
ในการวนซ้ำ สตริงของการวนซ้ำปัจจุบันจะถูกวางไว้ใน $_ จากนั้นจึงส่งออกผ่านการพิมพ์ นอกจากนี้ print ไม่ได้ระบุตัวแปรเอาต์พุต และจะใช้ $_ เป็นค่าเริ่มต้น
ต่อไปนี้เป็นบางตำแหน่งที่ Perl จะถือว่า $_ แม้ว่าจะไม่ได้ระบุ:
ฟังก์ชันเอกนารีต่างๆ รวมถึงฟังก์ชันเช่น ord() และ int() และการดำเนินการทดสอบไฟล์ทั้งหมด ("-f", "-d") ยกเว้น "-t" ซึ่งทำงานบน STDIN ตามค่าเริ่มต้น
ฟังก์ชันรายการต่างๆ เช่น print() และ unlink()
การดำเนินการจับคู่รูปแบบ "m//", "s///" และ "tr///" โดยไม่มีตัวดำเนินการ "=~"
ตัวแปรการวนซ้ำเริ่มต้นสำหรับ "foreach" จะวนซ้ำเมื่อไม่มีการกำหนดตัวแปรอื่น
ตัวแปรการวนซ้ำโดยนัยสำหรับฟังก์ชัน grep() และ map()
เมื่อ "ในขณะที่" มีเพียงเงื่อนไขเดียว และเงื่อนไขนั้นทดสอบผลลัพธ์ของการดำเนินการ "" $_ จะเป็นตำแหน่งเริ่มต้นสำหรับบันทึกอินพุต สิ่งนี้จะไม่เกิดขึ้นยกเว้นในเงื่อนไขการทดสอบ "ในขณะที่" (ช่วยในการจำ: สามารถละเว้นขีดล่างได้ในการดำเนินการบางอย่าง)
ตามลักษณะของการใช้ตัวแปรพิเศษสามารถแบ่งออกเป็นประเภทได้ดังต่อไปนี้:
ตัวแปรพิเศษสเกลาร์โกลบอล
ตัวแปรพิเศษอาเรย์โกลบอล
ตัวแปรพิเศษแฮชโกลบอล
ตัวจัดการไฟล์พิเศษระดับโลก
ค่าคงที่พิเศษทั่วโลก
ตัวแปรพิเศษของนิพจน์ทั่วไป
ไฟล์จัดการตัวแปรพิเศษ
ต่อไปนี้แสดงรายการตัวแปรพิเศษแบบสเกลาร์ทั้งหมด รวมถึงตัวแปรที่มีอักขระพิเศษและรูปแบบภาษาอังกฤษ:
- | เนื้อหาการจับคู่อินพุตและรูปแบบเริ่มต้น |
$ARG | |
- | หมายเลขบรรทัดปัจจุบันของตัวจัดการไฟล์ที่อ่านครั้งล่าสุด |
$NR | |
- | ป้อนตัวคั่นบันทึกซึ่งมีค่าเริ่มต้นเป็นอักขระขึ้นบรรทัดใหม่ หากคุณใช้ตัวแปร undef จุดสิ้นสุดของไฟล์จะถูกอ่าน |
$อาร์เอส | |
- | ตัวคั่นฟิลด์เอาต์พุต |
$OFS | |
- | ตัวแยกบันทึกเอาต์พุต |
$หรือ | |
- | ตัวแปรนี้คล้ายกับ $ แต่ควรใช้เพื่อประมาณค่าอาร์เรย์และแบ่งค่าเป็นสตริงที่มีเครื่องหมายคำพูดคู่ (หรือสตริงที่มีการประมาณค่าที่คล้ายกัน) ค่าเริ่มต้นเป็นหนึ่งช่องว่าง |
$LIST_SEPARATOR | |
- | ตัวคั่นที่ใช้เมื่อจำลองอาร์เรย์หลายมิติ ค่าเริ่มต้นคือ " |