Latest web development tutorials

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