บทช่วยสอน Perl การส่งออกจัดรูปแบบ ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ รูปแบบตัวแปร,ส่งออกไปยังไฟล์อื่น,
Perl เป็นข้อมูลการประมวลผลภาษาข้อความที่มีประสิทธิภาพมาก
Perl สามารถใช้ในการกำหนดรูปแบบแม่แบบและจากนั้นใช้การส่งออกเขียนข้อมูลจากแม่แบบที่กำหนด
รูปแบบ Perl ไวยากรณ์ที่กำหนดไว้ดังต่อไปนี้:
format FormatName = fieldline value_one, value_two, value_three fieldline value_one, value_two .
การวิเคราะห์พารามิเตอร์:
ต่อไปนี้เป็นตัวอย่างง่ายๆคือการจัดรูปแบบ:
#!/usr/bin/perl $text = "google w3big taobao"; format STDOUT = first: ^<<<<< # 左边对齐,字符长度为6 $text second: ^<<<<< # 左边对齐,字符长度为6 $text third: ^<<<< # 左边对齐,字符长度为5,taobao 最后一个 o 被截断 $text . write
ดำเนินการส่งออกตัวอย่างข้างต้นคือ
first: google second: w3big third: taoba
ช่วงของรูปแบบดังต่อไปนี้:
รูป | ความหมายหลากหลาย |
---|---|
@ <<< | การส่งออกซ้าย |
@ >>> | การส่งออกขวาธรรม |
@ ||| | ตําแหน่งเอาท์พุท |
@ ##. ## | จำนวนคงที่แม่นยำ |
@ * | ข้อความหลายบรรทัด |
ตัวอักษรตัวแรกของแต่ละบรรทัดเป็นช่วงของตัวละครฟิลเลอร์เมื่อใช้ @ ตัวอักษรไม่ได้จัดรูปแบบข้อความ
ในตารางข้างต้นนอกเหนือไปจากหลายคู่สาย @ * ช่วงกว้างฟิลด์จะเท่ากับจำนวนที่ระบุตัวอักษรในตัวละคร @ รวมทั้งตัวอย่างเช่น:
@###.##
เพราะมันหมายถึงเจ็ดตัวอักษรกว้างหลังจากที่สี่ก่อนจุดทศนิยมจุดทศนิยมสอง
ตัวอย่างมีดังนี้
#!/usr/bin/perl format EMPLOYEE = =================================== @<<<<<<<<<<<<<<<<<<<<<< @<< $name $age @#####.## $salary =================================== . select(STDOUT); $~ = EMPLOYEE; @n = ("Ali", "w3big", "Jaffer"); @a = (20,30, 40); @s = (2000.00, 2500.00, 4000.000); $i = 0; foreach (@n){ $name = $_; $age = $a[$i]; $salary = $s[$i++]; write; }
เอาท์พุทตัวอย่างข้างต้นคือ
=================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
ต่อไปนี้เป็นเรื่องง่ายที่จะใช้ $ เช่น - รูปแบบ:
#!/usr/bin/perl $~ = "MYFORMAT"; # 指定缺省文件变量下所使用的格式 write; # 输出 $~ 所指定的格式 format MYFORMAT = # 定义格式 MYFORMAT ================================= Text # 本教程 ================================= . write;
ดำเนินการส่งออกตัวอย่างข้างต้นคือ
================================= Text # 本教程 ================================= ================================= Text # 本教程 =================================
หากคุณไม่ได้ระบุ $ ~ ภายใต้กรณีที่รูปแบบการออกที่เรียกว่า STDOUT:
#!/usr/bin/perl write; # 不指定$~的情况下会寻找名为STDOUT的格式 format STDOUT = ~用~号指定的文字不会被输出 ---------------- STDOUT格式 ---------------- .
ดำเนินการส่งออกตัวอย่างข้างต้นคือ
---------------- STDOUT格式 ----------------
ตัวอย่างต่อไปนี้เราจะเพิ่มข้อมูลส่วนหัวรายงานแสดงให้เห็นถึง $ ^ หรือ $ FORMAT_TOP_NAME ตัวแปร:
#!/usr/bin/perl format EMPLOYEE = =================================== @<<<<<<<<<<<<<<<<<<<<<< @<< $name $age @#####.## $salary =================================== . format EMPLOYEE_TOP = =================================== Name Age =================================== . select(STDOUT); $~ = EMPLOYEE; $^ = EMPLOYEE_TOP; @n = ("Ali", "w3big", "Jaffer"); @a = (20,30, 40); @s = (2000.00, 2500.00, 4000.000); $i = 0; foreach (@n){ $name = $_; $age = $a[$i]; $salary = $s[$i++]; write; }
เอาท์พุทตัวอย่างข้างต้นคือ
=================================== Name Age =================================== =================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
นอกจากนี้เรายังสามารถใช้ $% หรือ $ FORMAT_PAGE_NUMBER ชุดเลขสำหรับรายงาน:
#!/usr/bin/perl format EMPLOYEE = =================================== @<<<<<<<<<<<<<<<<<<<<<< @<< $name $age @#####.## $salary =================================== . # 添加分页 $% format EMPLOYEE_TOP = =================================== Name Age Page @< $% =================================== . select(STDOUT); $~ = EMPLOYEE; $^ = EMPLOYEE_TOP; @n = ("Ali", "w3big", "Jaffer"); @a = (20,30, 40); @s = (2000.00, 2500.00, 4000.000); $i = 0; foreach (@n){ $name = $_; $age = $a[$i]; $salary = $s[$i++]; write; }
เอาท์พุทตัวอย่างข้างต้นคือ
=================================== Name Age Page 1 =================================== =================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
โดยค่าเริ่มต้นการทำงานจะเขียนผลไปยังไฟล์ที่ส่งออก STDOUT มาตรฐานเรายังสามารถทำให้มันออกผลลัพธ์ผลให้ไฟล์อื่น ๆ วิธีที่ง่ายที่สุดคือการยื่นตัวแปรเป็นพารามิเตอร์ที่จะเขียนเช่น:
write(MYFILE);
เขียนโค้ดข้างต้นเพื่อใช้ส่งออกรูปแบบการพิมพ์เริ่มต้นที่ไฟล์ที่เรียกว่า myfile myfile ใน
แต่นี้ไม่สามารถใช้ในการเปลี่ยนรูปแบบการพิมพ์ที่ใช้โดยตัวแปร $ ~ ตัวแปร $ ระบบ ~ ตัวแปรทำงานเฉพาะสำหรับแฟ้มเริ่มต้นเราสามารถเปลี่ยนค่าเริ่มต้นไฟล์ตัวแปร $ ~ การเปลี่ยนแปลงแล้วโทรเขียน
#!/usr/bin/perl if (open(MYFILE, ">tmp")) { $~ = "MYFORMAT"; write MYFILE; # 含文件变量的输出,此时会打印与变量同名的格式,即MYFILE。$~里指定的值被忽略。 format MYFILE = # 与文件变量同名 ================================= 输入到文件中 ================================= . close MYFILE; }
หลังจากที่การดำเนินงานที่ประสบความสำเร็จเราสามารถดูเนื้อหาของแฟ้ม tmp ดังต่อไปนี้:
$ cat tmp ================================= 输入到文件中 =================================
เราสามารถใช้เลือกเพื่อเปลี่ยนตัวแปรแฟ้มเริ่มต้นซึ่งจะส่งกลับตัวแปรภายในปัจจุบันบ่งชี้ว่าแฟ้มเริ่มต้นเพื่อให้เราสามารถสร้างโปรแกรมย่อยตามการส่งออกความคิดของตัวเองโดยไม่ต้องมีผลกระทบต่อส่วนที่เหลือของโปรแกรม
#!/usr/bin/perl if (open(MYFILE, ">>tmp")) { select (MYFILE); # 使得默认文件变量的打印输出到MYFILE中 $~ = "OTHER"; write; # 默认文件变量,打印到select指定的文件中,必使用$~指定的格式 OTHER format OTHER = ================================= 使用定义的格式输入到文件中 ================================= . close MYFILE; }
หลังจากที่การดำเนินงานที่ประสบความสำเร็จเราสามารถดูเนื้อหาของแฟ้ม tmp ดังต่อไปนี้:
$ cat tmp ================================= 输入到文件中 ================================= ================================= 使用定义的格式输入到文件中 =================================