Perl ตัวแปรพิเศษ
ภาษา Perl กำหนดตัวแปรบางพิเศษมักจะ $ @ หรือ% เป็นคำนำหน้าเช่น: _ $
ตัวแปรพิเศษจำนวนมากมีชื่อภาษาอังกฤษนานมากระบบปฏิบัติการตัวแปร $! สามารถเขียนเป็น $ OS_ERROR
หากคุณต้องการที่จะใช้ชื่อภาษาอังกฤษของตัวแปรพิเศษในโปรแกรมจะต้องมุ่งหน้าไปยังเพิ่มการใช้ภาษาอังกฤษ ;.นี้ตัวแปรพิเศษภาษาอังกฤษที่เป็นคำอธิบาย
ที่ใช้กันมากที่สุดพิเศษตัวแปร $ _ ตัวแปรมีการป้อนข้อมูลเริ่มต้นเนื้อหาและรูปแบบการจับคู่ ตัวอย่างมีดังนี้
#!/usr/bin/perl foreach ('Google','w3big','Taobao') { print $_; print "\n"; }
โปรแกรมข้างต้นผลลัพธ์คือ:
Google w3big Taobao
ตัวอย่างต่อไปนี้เราจะไม่ใช้ _ $ การส่งออก:
#!/usr/bin/perl foreach ('Google','w3big','Taobao') { print; print "\n"; }
โปรแกรมข้างต้นผลลัพธ์คือ:
Google w3big Taobao
ตัวอย่างเช่นการส่งออกเป็นครั้งแรกว่า "Google" แล้วออก "w3big" ผลสุดท้าย "Taobao"
ในวงย้ำห่วงปัจจุบันของสตริงใน _ $ แล้วผ่านการส่งออกการพิมพ์ นอกจากนี้ยังพิมพ์โดยไม่ต้องระบุตัวแปรที่ส่งออกจะถูกใช้โดยเริ่มต้นที่ $ _
ต่อไปนี้เป็นเพียงไม่กี่รัฐได้โดยไม่ต้อง Perl จะถือว่า _ $ สถานที่:
- ฟังก์ชั่นต่าง ๆ ที่ตาข้างเดียวรวมทั้งอ๊อด () และ int () ฟังก์ชั่นและอื่น ๆ นอกจาก "t-" การทดสอบทั้งหมดไฟล์ ( "-f", "- D"), "- T" การกระทำเริ่มต้น STDIN
- รายการของฟังก์ชั่นต่างๆเช่นการพิมพ์ () และยกเลิกการเชื่อมโยง ()
- อย่าใช้ "= ~" โหมดผู้ประกอบการเมื่อการดำเนินการจับคู่ "m //", "S ///" และ "TR ///"
- เมื่อตัวแปรอื่น ๆ ไม่ได้รับ "foreach" ห่วงซ้ำเริ่มต้นตัวแปร
- ย้ำนัย grep ตัวแปร () และแผนที่ () ฟังก์ชัน
- เมื่อ "ขณะที่" เพียงเงื่อนไขเดียวและเงื่อนไขเป็นผลจากการ "" การทดสอบการดำเนินการ _ $ เป็นสถานที่เริ่มต้นสำหรับการจัดเก็บบันทึกการป้อนข้อมูล นอกจากนี้ยังมี "ขณะที่" เงื่อนไขการทดสอบที่จะไม่เกิดขึ้น (Mnemonic: ขีดเส้นใต้ในการทำงานโดยเฉพาะอย่างยิ่งสามารถละเว้น.)
ตัวแปรชนิดพิเศษ
อ้างอิงถึงลักษณะพิเศษของการใช้ตัวแปรสามารถแบ่งออกเป็นประเภทต่อไปนี้:
ตัวแปรสเกลาทั่วโลกพิเศษ
ตัวแปรอาร์เรย์พิเศษทั่วโลก
แฮตัวแปรทั่วโลกพิเศษ
ทั่วโลกจับแฟ้มพิเศษ
คงที่พิเศษทั่วโลก
ตัวแปรพิเศษ regex
จัดการแฟ้มตัวแปรพิเศษ
ตัวแปรสเกลาทั่วโลกพิเศษ
ต่อไปนี้เป็นรายชื่อของตัวแปรสเกลาพิเศษที่มีตัวอักษรพิเศษและภาษาอังกฤษในรูปแบบของตัวแปรนี้:
_ $ | การป้อนข้อมูลเริ่มต้นและการจับคู่รูปแบบเนื้อหา |
$ หาเรื่อง | |
$ | ก่อนหน้าอ่านจำนวนบรรทัดปัจจุบันของไฟล์ที่จับ |
$ NR | |
$ / | ป้อนข้อมูลคั่นบันทึกโดยค่าเริ่มต้นตัวอักษรขึ้นบรรทัดใหม่ เช่นเดียวกับ undef ตัวแปรนี้จะอ่านตอนท้ายของแฟ้ม |
$ อาร์เอส | |
$, | คั่นฟิลด์เอาท์พุท |
$ OFS | |
$ \ | คั่นบันทึกเอาท์พุท |
$ ORS | |
$ " | ตัวแปร $ เดียวกันที่คล้ายกัน แต่นำไปใช้กับสตริงอัญประกาศ (หรือแก้ไขสตริงที่คล้ายกัน) จะถูกแทรกภายในอาร์เรย์ของโอกาสและค่าชิ้น เริ่มต้นเป็นที่ว่างเปล่า |
$ LIST_SEPARATOR | |
$; | คั่นใช้เมื่อมีการจำลองอาร์เรย์หลายมิติ เริ่มต้นคือ "\ 034" |
$ SUBSCRIPT_SEPARATOR | |
$ ^ L | ส่งไปยังช่องทางเอาท์พุทใช้ตัวอักษรป้อนกระดาษ เริ่มต้นคือ "\ F" |
$ FORMAT_FORMFEED | |
$: | ชุดปัจจุบันของตัวละครหลังจากที่สตริงอาจจะเสียการกรอกข้อมูลต่อเนื่อง (เริ่มต้นด้วย ^) ในรูปแบบ. เริ่มต้นคือ "\ n" " |
$ FORMAT_LINE_BREAK_CHARACTERS | |
$ อรรถเป็น | ก่อนที่จะพิมพ์รูปแบบข้อมูลตัวแปรสำหรับการบันทึก |
$ ACCUMULATOR | |
$ # | เมื่อคุณพิมพ์รูปแบบการออกดิจิตอลเริ่มต้นดิจิตอล (เก่า) |
$ OFMT | |
$? | กลับไปยังสถานะของคำสั่งภายนอก |
$ CHILD_ERROR | |
$ | ค่าตัวเลขของตัวแปรนี้คือค่าของ errno ค่าสตริงเป็นสตริงผิดพลาดของระบบที่สอดคล้องกัน |
$ OS_ERROR หรือ $ errno | |
$ @ | ข้อผิดพลาดคำสั่ง Eval ถ้ามันว่างเปล่าก็หมายความว่าคำสั่ง Eval สุดท้ายเสร็จเรียบร้อยแล้ว |
$ EVAL_ERROR | |
$$ | สคริปต์ Perl เพื่อเรียกใช้กระบวนการ ID ปัจจุบัน |
$ PROCESS_ID หรือ $ PID | |
$ < | จำนวนสมาชิกที่เกิดขึ้นจริงของกระบวนการปัจจุบัน |
$ REAL_USER_ID หรือ $ UID | |
$> | จำนวนผู้ใช้งานที่มีประสิทธิภาพของกระบวนการปัจจุบัน |
$ EFFECTIVE_USER_ID หรือ $ EUID | |
$ ( | กระบวนการที่เกิดขึ้นจริงในปัจจุบันจำนวนของกลุ่มผู้ใช้ |
$ REAL_GROUP_ID หรือ $ GID | |
$) | จำนวนกลุ่มผู้ใช้กระบวนการปัจจุบันมีประสิทธิภาพ |
$ EFFECTIVE_GROUP_ID หรือ $ EGID | |
$ 0 | ชื่อไฟล์มีสคริปต์ที่ถูกประหารชีวิต |
$ Program_Name | |
$ [ | ดัชนีองค์ประกอบแรกของอาร์เรย์ของอาร์เรย์เริ่มต้นคือ 0 |
$] | หมายเลขรุ่น Perl |
$ PERL_VERSION | |
$ ^ D | ค่าของธงแก้ปัญหา |
$ DEBUGGING | |
$ ^ E | ในที่ไม่ใช่ UNIX สภาพแวดล้อมระบบปฏิบัติการขยายข้อมูลความผิดพลาด |
$ EXTENDED_OS_ERROR | |
$ ^ F | แฟ้มค่าตัวระบุสูงสุดของมัดกล่าวว่า |
$ SYSTEM_FD_MAX | |
$ H ^ | เปิดใช้งานโดยการตรวจสอบสถานะไวยากรณ์คอมไพเลอร์ |
$ ^ ฉัน | Built-in มูลค่าการควบคุมของบรรณาธิการ |
$ INPLACE_EDIT | |
$ ^ M | สระว่ายน้ำขนาดหน่วยความจำสำรอง |
$ ^ o | ชื่อระบบปฏิบัติการ |
$ OSNAME | |
$ ^ P | ระบุดีบักค่าตัวแปรภายในปัจจุบัน |
$ PERLDB | |
$ ^ T | ตั้งแต่จุดเริ่มต้นของศตวรรษใหม่ก้าววินาทีที่เริ่มต้นที่จะหมดเวลา |
$ BASETIME | |
$ ^ W | มูลค่าปัจจุบันของสวิทช์เตือน |
$ คำเตือน | |
$ ^ X | Perl ไบนารีชื่อรหัสปฏิบัติการ |
$ EXECUTABLE_NAME | |
$ ARGV | ชื่อไฟล์ปัจจุบันอ่านจากที่จับแฟ้มเริ่มต้นเมื่อ |
ตัวแปรอาร์เรย์พิเศษทั่วโลก
@ ARGV | คำสั่งสคริปต์บรรทัดรายการอาร์กิวเมนต์ |
@ INC | เมื่อคุณนำเข้ารายการไดเรกทอรีโมดูลที่จะค้นหา |
F @ | ใส่อาร์เรย์บรรทัดคำสั่ง |
แฮตัวแปรทั่วโลกพิเศษ
INC% | % กัญชา INC มีไฟล์ทั้งหมดที่มีทำหรือต้องมีงบที่มีคำหลักเป็นชื่อไฟล์ที่มีค่าเป็นเส้นทางของแฟ้ม |
ENV% | ที่มีตัวแปรสภาพแวดล้อมในปัจจุบัน |
SIG% | รายการสัญญาณและวิธีการจัดการ |
ทั่วโลกจับแฟ้มพิเศษ
ARGV | จับแฟ้มพิเศษผ่านอาร์เรย์ @ ARGV ตัวแปรชื่อไฟล์ |
STDERR | ข้อผิดพลาดที่จับออกมาตรฐาน |
STDIN | จับเข้ามาตรฐาน |
STDOUT | จับออกมาตรฐาน |
DATA | พิเศษอ้างอิงไฟล์ใด ๆ ที่จับธง __END__ เนื้อหาในไฟล์ที่มีเนื้อหาของสคริปต์หลังจาก หรือมีการอ้างอิงถึงทั้งหมดของไฟล์เนื้อหามีธง __DATA__ หลังจากตราบใดที่คุณได้อ่านในข้อมูลแพ็คเก็ตเดียวกัน __ DATA__ มี |
_ (ใต้) | พิเศษจัดการแฟ้มแฟ้มแคชสำหรับข้อมูล (fstat, สถิติและ lstat) |
คงที่พิเศษทั่วโลก
__END__ | ปลายตรรกะของสคริปต์ข้อความหลังจากละเว้น |
__FILE__ | ชื่อไฟล์ปัจจุบัน |
__LINE__ | จำนวนบรรทัดปัจจุบัน |
__PACKAGE__ | ชื่อแพ็กเกจปัจจุบันชื่อแพคเกจเริ่มต้นเป็นหลัก |
ตัวแปรพิเศษ regex
$ N | ที่มีรูปแบบที่ผ่านมาตรงกับ n TH สตริง |
$ & | ก่อนหน้านี้ประสบความสำเร็จสตริงจับคู่รูปแบบ |
$ MATCH | |
$ ` | ย่อยล่าสุดที่ตรงกับความสำเร็จของเนื้อหาก่อนหน้านี้ |
$ prematch | |
$ ' | เนื้อหาการแข่งขันที่ผ่านมาหลังจากที่ประสบความสำเร็จย่อย |
$ postmatch | |
$ + | และที่ผ่านมาค้นหาแสดงออกปกติรูปแบบการจับคู่วงเล็บสุดท้าย ตัวอย่างเช่น: /Version: (.*)|Revision: (.*)/ && ($rev = $+); |
$ LAST_PAREN_MATCH |
จัดการแฟ้มตัวแปรพิเศษ
$ | | ถ้าตั้งค่าเป็นศูนย์หลังจากที่เขียนแต่ละฟังก์ชั่นการโทรหรือพิมพ์โดยอัตโนมัติเรียก fflush ฟังก์ชันเนื้อหาที่เขียนจะเขียนไฟล์ |
$ OUTPUT_AUTOFLUSH | |
$% | จำนวนหน้าส่งออกในปัจจุบัน |
$ FORMAT_PAGE_NUMBER | |
$ = | ความยาวหน้าปัจจุบัน ค่าเริ่มต้นคือ 60 |
$ FORMAT_LINES_PER_PAGE | |
$ - | จำนวนหน้าปัจจุบันของเส้นที่เหลือ |
$ FORMAT_LINES_LEFT | |
$ ~ | ปัจจุบันชื่อของรูปแบบการออกรายงาน ค่าเริ่มต้นคือชื่อของการจัดการไฟล์ |
$ FORMAT_NAME | |
$ ^ | รายงานการส่งออกรูปแบบชื่อส่วนหัวของตารางปัจจุบัน ค่าเริ่มต้นคือมีคำต่อท้าย "_top" ชื่อไฟล์ที่จับ |
$ FORMAT_TOP_NAME |