ภาษาอังกฤษอาหารฝรั่งเศสสเปน

ไอคอน Fav ของ OnWorks

perlform - ออนไลน์ในคลาวด์

เรียกใช้ perlform ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง perlform ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


perlform - รูปแบบ Perl

DESCRIPTION


Perl มีกลไกที่จะช่วยคุณสร้างรายงานและแผนภูมิอย่างง่าย เพื่ออำนวยความสะดวกนี้
Perl ช่วยให้คุณเขียนโค้ดหน้าผลลัพธ์ได้ใกล้เคียงกับลักษณะที่ปรากฏเมื่อพิมพ์ มัน
สามารถติดตามสิ่งต่างๆ เช่น จำนวนบรรทัดบนเพจ เพจที่คุณอยู่ เมื่อไรถึง
พิมพ์ส่วนหัวของหน้า ฯลฯ คำหลักยืมมาจาก FORTRAN: รูปแบบ() ประกาศและ
เขียน() เพื่อดำเนินการ; ดูรายการของพวกเขาใน perlfunc โชคดีที่เลย์เอาต์มีมากขึ้น
อ่านง่าย เหมือนคำสั่งพิมพ์ของ BASIC คิดว่ามันเป็นของคนจน ไม่(1)

รูปแบบ เช่น แพ็คเกจและรูทีนย่อย ได้รับการประกาศแทนที่จะดำเนินการ ดังนั้นอาจ
เกิดขึ้นที่จุดใดก็ได้ในโปรแกรมของคุณ (โดยปกติควรเก็บไว้ทั้งหมดเข้าด้วยกัน)
พวกเขามีเนมสเปซของตัวเองนอกเหนือจาก "ประเภท" อื่น ๆ ทั้งหมดใน Perl หมายความว่า
หากคุณมีฟังก์ชั่นชื่อ "Foo" จะไม่เหมือนกับการมีรูปแบบชื่อ
"ฟู". อย่างไรก็ตาม ชื่อเริ่มต้นสำหรับรูปแบบที่เกี่ยวข้องกับการจัดการไฟล์ที่ระบุคือ
เช่นเดียวกับชื่อของ filehandle ดังนั้น รูปแบบเริ่มต้นสำหรับ STDOUT จึงมีชื่อว่า
"STDOUT" และรูปแบบเริ่มต้นสำหรับ filehandle TEMP ชื่อ "TEMP" พวกเขาเพียงแค่มอง
เหมือนกัน. พวกเขาไม่ได้

รูปแบบบันทึกผลลัพธ์มีการประกาศดังนี้:

รูปแบบ NAME =
แบบฟอร์ม
.

หากไม่ระบุชื่อ จะมีการกำหนดรูปแบบ "STDOUT" โสด "." ในคอลัมน์ 1 ใช้สำหรับ
ยุติรูปแบบ FORMLIST ประกอบด้วยลำดับของเส้น ซึ่งแต่ละเส้นอาจเป็นหนึ่งใน
สามประเภท:

1. ความคิดเห็นที่ระบุโดยใส่ '#' ในคอลัมน์แรก

2. บรรทัด "รูปภาพ" ที่ให้รูปแบบสำหรับบรรทัดเอาต์พุตหนึ่งบรรทัด

3. เส้นอาร์กิวเมนต์ที่ให้ค่าเพื่อเสียบเข้ากับบรรทัดรูปภาพก่อนหน้า

เส้นรูปภาพมีคำจำกัดความของฟิลด์เอาต์พุต ผสมกับข้อความตามตัวอักษร เหล่านี้
เส้นไม่ผ่านการแก้ไขตัวแปรใดๆ คำจำกัดความของฟิลด์ถูกสร้างขึ้น
จากชุดอักขระสำหรับเริ่มต้นและขยายฟิลด์ให้มีความกว้างที่ต้องการ นี่คือ
ชุดอักขระที่สมบูรณ์สำหรับคำจำกัดความของฟิลด์:

@เริ่มสนามปกติ
^ เริ่มสนามพิเศษ
< อักขระแผ่นสำหรับให้เหตุผลด้านซ้าย
| อักขระแผ่นสำหรับการจัดกึ่งกลาง
> อักขระแผ่นสำหรับเหตุผลที่ถูกต้อง
# อักขระแผ่นสำหรับช่องตัวเลขที่ถูกต้อง
0 แทน #: หมายเลขแผ่นที่มีศูนย์นำหน้า
. จุดทศนิยมในช่องตัวเลข
... สิ้นสุดฟิลด์ข้อความโดยแสดง "..." เป็นหลักฐานการตัดทอน
@* ฟิลด์ความกว้างของตัวแปรสำหรับค่าหลายบรรทัด
^* ฟิลด์ความกว้างตัวแปรสำหรับบรรทัดถัดไปของค่าหลายบรรทัด
~ ระงับบรรทัดโดยที่ทุกช่องว่างเปล่า
~~ ซ้ำแถวจนหมดทุกช่อง

แต่ละฟิลด์ในบรรทัดรูปภาพเริ่มต้นด้วย "@" (at) หรือ "^" (คาเร็ต) โดยระบุว่าอะไร
เราจะเรียกฟิลด์ "ปกติ" หรือ "พิเศษ" ตามลำดับ ทางเลือกของตัวละครแผ่น
กำหนดว่าฟิลด์เป็นข้อความหรือตัวเลข ตัวดำเนินการตัวหนอนไม่ได้เป็นส่วนหนึ่งของa
สนาม. ลองดูความเป็นไปได้ต่างๆ โดยละเอียด

ข้อความ สาขา
ความยาวของฟิลด์นั้นมาจากการขยายฟิลด์ด้วยหลาย "<", ">" หรือ
"|" อักขระเพื่อระบุฟิลด์ที่ไม่ใช่ตัวเลขโดยให้เหตุผลด้านซ้ายตามลำดับ
การให้เหตุผลที่ถูกต้องหรือการจัดกึ่งกลาง สำหรับฟิลด์ปกติ ค่า (สูงสุด
ขึ้นบรรทัดใหม่) ถูกถ่ายและพิมพ์ตามเหตุผลที่เลือกตัดทอนส่วนเกิน
ตัวอักษร หากคุณสิ้นสุดช่องข้อความด้วย "..." จุดสามจุดจะปรากฏขึ้นหาก
ค่าจะถูกตัดทอน ช่องข้อความพิเศษสามารถใช้ทำข้อความหลายบรรทัดพื้นฐานได้
บล็อกเติม; ดู "การใช้โหมดเติม" สำหรับรายละเอียด

ตัวอย่าง:
รูปแบบ STDOUT =
@<<<<<< @|||||| @>>>>>>
"ซ้าย", "กลาง", "ขวา"
.
Output:
ซ้าย กลาง ขวา

เป็นตัวเลข สาขา
การใช้ "#" เป็นอักขระการขยายเพื่อระบุฟิลด์ตัวเลข โดยให้เหตุผลที่ถูกต้อง หนึ่ง
ไม่จำเป็น "." กำหนดตำแหน่งของจุดทศนิยม ด้วย "0" (ศูนย์) แทนที่จะเป็น
อันดับแรก "#" หมายเลขที่จัดรูปแบบจะถูกเติมด้วยศูนย์นำหน้าหากจำเป็น NS
ช่องตัวเลขพิเศษจะเว้นว่างไว้หากไม่มีการกำหนดค่า ถ้าค่าผลลัพธ์
จะเกินความกว้างที่ระบุฟิลด์ที่มี "#" เป็นหลักฐานล้น

ตัวอย่าง:
รูปแบบ STDOUT =
-
42, 3.1415, ไม่ระบุ, 0, 10000, ไม่ป้องกัน
.
Output:
42 3.142 0.000 0 ####

เทศกาล สนาม @* เป็นเวลา ตัวแปร-ความกว้าง หลายบรรทัด ข้อความ
ฟิลด์ "@*" สามารถใช้สำหรับการพิมพ์ค่าหลายบรรทัดและไม่ตัดทอน มันควรจะ (แต่
ไม่จำเป็น) ปรากฏขึ้นเองในบรรทัด ฟีดบรรทัดสุดท้ายถูกตัดออก แต่อื่นๆ ทั้งหมด
ตัวอักษรจะถูกปล่อยออกมาทุกคำ

เทศกาล สนาม ^* เป็นเวลา ตัวแปร-ความกว้าง หนึ่งบรรทัดต่อครั้ง ข้อความ
เช่นเดียวกับ "@*" นี่คือฟิลด์ความกว้างตัวแปร ค่าที่ระบุต้องเป็นตัวแปรสเกลาร์
Perl ใส่บรรทัดแรก (ถึง "\n") แรกของข้อความลงในฟิลด์ แล้วสับ
ปิดด้านหน้าของสตริงเพื่อให้การอ้างอิงตัวแปรในครั้งต่อไป
สามารถพิมพ์ข้อความได้ ตัวแปร will ไม่ ได้รับการบูรณะ

ตัวอย่าง:
$text = "บรรทัดที่ 1\nบรรทัดที่ 2\nบรรทัดที่ 3";
รูปแบบ STDOUT =
ข้อความ: ^*
ข้อความ $
~~ ^^*
ข้อความ $
.
Output:
ข้อความ: บรรทัด 1
บรรทัด 2
บรรทัด 3

ระบุ ความคุ้มค่า
ค่าที่ระบุไว้ในบรรทัดรูปแบบต่อไปนี้ในลำดับเดียวกับรูปภาพ
ฟิลด์ นิพจน์ที่ระบุค่าต้องคั่นด้วยเครื่องหมายจุลภาค พวกเขาทั้งหมด
ประเมินในบริบทของรายการก่อนที่จะประมวลผลบรรทัดดังนั้นนิพจน์รายการเดียว
สามารถสร้างองค์ประกอบรายการได้หลายรายการ นิพจน์อาจกระจายออกไปได้มากกว่าหนึ่ง
เส้นถ้าอยู่ในวงเล็บปีกกา ถ้าใช่ วงเล็บปีกกาเปิดต้องเป็นโทเค็นตัวแรกในตัวแรก
ไลน์. ถ้านิพจน์ประเมินเป็นตัวเลขที่มีส่วนทศนิยม และถ้า
รูปภาพที่เกี่ยวข้องระบุว่าส่วนทศนิยมควรปรากฏในผลลัพธ์ ( that
คือ รูปภาพใดๆ ยกเว้นอักขระ "#" หลายตัว ไม่มี ตัว "."), อักขระ
ใช้สำหรับจุดทศนิยมถูกกำหนดโดยสถานที่ LC_NUMERIC ปัจจุบันหาก "ใช้สถานที่"
มีผลบังคับใช้ ซึ่งหมายความว่า ตัวอย่างเช่น หากสภาพแวดล้อมรันไทม์เกิดขึ้นกับ
ระบุสถานที่เยอรมัน "," จะใช้แทนค่าเริ่มต้น "." ดู perllocale และ
"คำเตือน" สำหรับข้อมูลเพิ่มเติม

การใช้ ใส่ โหมด
ในฟิลด์ข้อความ เครื่องหมายรูปหมวกจะเปิดใช้งานโหมดการเติม แทนการแสดงออกโดยพลการ
ค่าที่ระบุต้องเป็นตัวแปรสเกลาร์ที่มีสตริงข้อความ Perl ทำให้
ส่วนถัดไปของข้อความลงในฟิลด์แล้วตัดด้านหน้าของสตริงดังนั้น
ว่าในครั้งต่อไปที่มีการอ้างอิงตัวแปร สามารถพิมพ์ข้อความได้มากขึ้น (ใช่,
นี่หมายความว่าตัวแปรเองถูกเปลี่ยนแปลงระหว่างการดำเนินการของ เขียน() โทรและ
ไม่ถูกกู้คืน) ส่วนถัดไปของข้อความถูกกำหนดโดยการแบ่งบรรทัดคร่าวๆ
อัลกอริทึม คุณสามารถใช้อักขระขึ้นบรรทัดใหม่ ("\r") เพื่อบังคับให้ขึ้นบรรทัดใหม่ได้ คุณสามารถ
เปลี่ยนอักขระที่ถูกกฎหมายที่จะทำลายโดยการเปลี่ยนตัวแปร $: (นั่นคือ
$FORMAT_LINE_BREAK_CHARACTERS หากคุณใช้โมดูลภาษาอังกฤษ) ในรายการที่ต้องการ
อักขระ

โดยปกติ คุณจะใช้ลำดับของฟิลด์ในสแต็กแนวตั้งที่เกี่ยวข้องกับฟิลด์เดียวกัน
ตัวแปรสเกลาร์เพื่อพิมพ์กลุ่มข้อความ คุณอาจต้องการสิ้นสุดฟิลด์สุดท้ายด้วย
ข้อความ "..." ซึ่งจะปรากฏในผลลัพธ์หากข้อความยาวเกินไปที่จะปรากฏใน
ครบถ้วน

ปราบปราม . ที่ไหน ทั้งหมด สาขา Are เป็นโมฆะ
การใช้ฟิลด์คาเร็ตสามารถสร้างบรรทัดที่ฟิลด์ทั้งหมดว่างเปล่าได้ คุณสามารถปราบปรามเช่น
โดยใส่อักขระ "~" (ตัวหนอน) ที่ใดก็ได้ในบรรทัด ตัวหนอนจะเป็น
แปลเป็นช่องว่างเมื่อส่งออก

การทำซ้ำ รูปแบบ .
หากคุณใส่อักขระตัวหนอน "~~" ติดกันสองตัวที่ใดก็ได้ในบรรทัด บรรทัดจะเป็น
ซ้ำจนกว่าฟิลด์ทั้งหมดในบรรทัดจะหมด นั่นคือ ไม่ได้กำหนด เพื่อความพิเศษ
(คาเร็ต) ฟิลด์ข้อความนี้จะเกิดขึ้นไม่ช้าก็เร็ว แต่ถ้าคุณใช้ฟิลด์ข้อความของ at
วาไรตี้ การแสดงออกที่คุณให้มาไม่ควรให้ค่าเท่ากันทุกครั้งตลอดไป!
("shift(@f)" เป็นตัวอย่างง่ายๆ ที่จะได้ผล) อย่าใช้ฟิลด์ตัวเลข (at) ปกติ
ในบรรทัดดังกล่าวเพราะจะไม่เว้นว่างไว้

Top of ฟอร์ม กระบวนการผลิต
การประมวลผลด้านบนของแบบฟอร์มจะถูกจัดการโดยค่าเริ่มต้นโดยรูปแบบที่มีชื่อเดียวกันกับcurrent
filehandle ที่มี "_TOP" ต่อกัน มันถูกเรียกใช้ที่ด้านบนสุดของแต่ละหน้า ดู
"เขียน" ใน perlfunc.

ตัวอย่าง:

#รายงานเรื่อง / etc / passwd ไฟล์
รูปแบบ STDOUT_TOP =
ไฟล์รหัสผ่าน
ชื่อ เข้าสู่ระบบ Office Uid Gid Home
-------------------------------------------------- ----------------
.
รูปแบบ STDOUT =
@<<<<<<<<<<<<<<<<<< @||||||| @<<<<<<@>>>> @>>>> @<<<<<<<<<<<<<<<<
$name, $เข้าสู่ระบบ, $office,$uid,$gid, $home
.

#รายงานจากแบบฟอร์มแจ้งบัค
รูปแบบ STDOUT_TOP =
รายงานข้อผิดพลาด
@<<<<<<<<<<<<<<<<<<<<<< @||| @>>>>>>>>>>>>>>>>>>>>>>>>
$ระบบ, $%, $วันที่
-------------------------------------------------- ----------------
.
รูปแบบ STDOUT =
Subject: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<
$ subject
ดัชนี: @<<<<<<<<<<<<<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<< <<<<<<<<<
$ดัชนี, $คำอธิบาย
ลำดับความสำคัญ: @<<<<<<<<<< วันที่: @<<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<< <
$ลำดับความสำคัญ, $วันที่, $คำอธิบาย
จาก: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<< <<<<<<<<<<<<
$จาก $description
มอบหมายให้: @<<<<<<<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<< <<<<
$โปรแกรมเมอร์, $description
~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<
คำอธิบาย $
~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<
คำอธิบาย $
~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<
คำอธิบาย $
~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<
คำอธิบาย $
~ ^<<<<<<<<<<<<<<<<<<<<<<<<...
คำอธิบาย $
.

ผสมกันได้ พิมพ์()กับ เขียน()อยู่ในช่องสัญญาณออกเดียวกัน แต่คุณจะ
ต้องจัดการ "$-" ($FORMAT_LINES_LEFT) ด้วยตัวคุณเอง

รูปแบบ ตัวแปร
ชื่อรูปแบบปัจจุบันถูกเก็บไว้ในตัวแปร $~ ($FORMAT_NAME) และตัวบนสุด
ของชื่อรูปแบบในรูปแบบ $^ ($FORMAT_TOP_NAME) หมายเลขหน้าผลลัพธ์ปัจจุบันจะถูกเก็บไว้
ใน $% ($FORMAT_PAGE_NUMBER) และจำนวนบรรทัดบนหน้าอยู่ใน $=
($FORMAT_LINES_PER_PAGE) ว่าจะล้างเอาต์พุตอัตโนมัติบนแฮนเดิลนี้หรือไม่ถูกเก็บไว้ใน $|
($OUTPUT_AUTOFLUSH). เอาต์พุตสตริงก่อนด้านบนของหน้าแต่ละหน้า (ยกเว้นหน้าแรก) is
เก็บไว้ใน $^L ($FORMAT_FORMFEED) ตัวแปรเหล่านี้ถูกตั้งค่าตามการจัดการไฟล์ต่อไฟล์ ดังนั้น
คุณจะต้อง เลือก() ไปเป็นอย่างอื่นเพื่อส่งผลต่อพวกเขา:

เลือก ((เลือก (OUTF),
$~ = "My_Other_Format",
$^ = "My_Top_Format"
)[0]);

น่าเกลียดมากใช่มั้ย มันเป็นสำนวนทั่วไป ดังนั้นอย่าแปลกใจมากเมื่อคุณเห็นมัน
อย่างน้อยคุณสามารถใช้ตัวแปรชั่วคราวเพื่อเก็บ filehandle ก่อนหน้า: (นี่คือมาก
แนวทางที่ดีขึ้นโดยทั่วไป เพราะไม่เพียงแต่ความชัดเจนจะดีขึ้น ตอนนี้คุณยังมี
ระยะตัวกลางในนิพจน์เพื่อขั้นตอนเดียวในการดีบักเกอร์ผ่าน):

$ofh = เลือก (OUTF);
$~ = "My_Other_Format";
$^ = "My_Top_Format";
เลือก($ofh);

หากคุณใช้โมดูลภาษาอังกฤษ คุณสามารถอ่านชื่อตัวแปรได้:

ใช้ภาษาอังกฤษ
$ofh = เลือก (OUTF);
$FORMAT_NAME = "My_Other_Format";
$FORMAT_TOP_NAME = "My_Top_Format";
เลือก($ofh);

แต่คุณยังมีเรื่องตลกเหล่านั้นอยู่ เลือก()NS. ดังนั้นเพียงแค่ใช้โมดูล FileHandle ตอนนี้คุณ
สามารถเข้าถึงตัวแปรพิเศษเหล่านี้ได้โดยใช้ชื่อเมธอดตัวพิมพ์เล็กแทน:

ใช้ FileHandle;
format_name OUTF "My_Other_Format";
format_top_name OUTF "My_Top_Format";

ดีกว่ามาก!

หมายเหตุ


เนื่องจากบรรทัดค่าอาจมีนิพจน์โดยพลการ (สำหรับฟิลด์ ไม่ใช่คาเร็ต
ฟิลด์) คุณสามารถฟาร์มการประมวลผลที่ซับซ้อนมากขึ้นไปยังฟังก์ชันอื่น ๆ เช่น วิ่ง()
หรืออย่างใดอย่างหนึ่งของคุณเอง ตัวอย่างเช่น:

รหัสรูปแบบ =
@<<<<<<<<<<<<<<<<
&commify($n)
.

เพื่อให้ได้ตัวจริงหรือคาเร็ตในสนาม ให้ทำดังนี้

รหัสรูปแบบ =
ฉันมี @ ที่นี่
"@"
.

หากต้องการจัดข้อความทั้งบรรทัดให้อยู่ตรงกลาง ให้ทำดังนี้:

รหัสรูปแบบ =
@|||||||||||||||||||||||||||||||||||||||||||||||||||
"ข้อความบางบรรทัด"
.

ไม่มีทางที่จะบอกว่า "ลอยสิ่งนี้ไปทางด้านขวามือของหน้าอย่างไรก็ตาม
กว้างนัก" ต้องระบุให้ได้ว่าจะไปที่ไหน หมดหวังจริงๆ สร้างได้
รูปแบบของตัวเองได้ทันที ตามจำนวนคอลัมน์ปัจจุบัน จากนั้น ประเมิน () มัน

$format = "รูปแบบ STDOUT = \n"
. '^' . '<' x $cols "\NS"
. '$ รายการ' . "\NS"
. "\t^" "<" x ($cols-8) "~~\n"
. '$ รายการ' . "\NS"
. ".\NS";
พิมพ์รูปแบบ $ ถ้า $ Debugging;
รูปแบบ $ eval;
ตาย $@ ถ้า $@;

ซึ่งจะสร้างรูปแบบที่มีลักษณะดังนี้:

รูปแบบ STDOUT =
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<
$ รายการ
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <~~
$ รายการ
.

นี่เป็นโปรแกรมเล็กๆ ที่คล้ายๆ กัน เอฟเอ็มที(1):

รูปแบบ =
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ~~
$_

.

$/ = '';
ในขณะที่ (<>) {
s/\s*\n\s*/ /g;
เขียน;
}

ท้ายกระดาษ
แม้ว่า $FORMAT_TOP_NAME จะมีชื่อของรูปแบบส่วนหัวปัจจุบัน แต่ไม่มี
กลไกที่สอดคล้องกันเพื่อทำสิ่งเดียวกันโดยอัตโนมัติสำหรับส่วนท้าย ไม่รู้เป็นเช่นไร
รูปแบบขนาดใหญ่จะเป็นไปจนกว่าคุณจะประเมินว่าเป็นหนึ่งในปัญหาสำคัญ มันออน
รายการสิ่งที่ต้องทำ

นี่คือกลยุทธ์หนึ่ง: หากคุณมีส่วนท้ายที่มีขนาดคงที่ คุณสามารถรับส่วนท้ายได้โดยทำเครื่องหมายที่
$FORMAT_LINES_LEFT ก่อนแต่ละรายการ เขียน() และพิมพ์ส่วนท้ายด้วยตนเองหากจำเป็น

นี่เป็นอีกกลยุทธ์หนึ่ง: เปิดไพพ์ให้กับตัวเองโดยใช้ "open(MYSELF, "|-")" (ดู "open"
ใน perlfunc) และเสมอ เขียน() ไปที่ MYSELF แทน STDOUT ให้ลูกของคุณดำเนินการ
นวด STDIN เพื่อจัดเรียงส่วนหัวและส่วนท้ายใหม่ตามที่คุณต้องการ ไม่สะดวกมาก,
แต่ทำได้

การเข้าถึง การจัดรูปแบบ internals
สำหรับการเข้าถึงกลไกการจัดรูปแบบระดับต่ำ คุณสามารถใช้ แบบฟอร์ม () และเข้าถึง $^A
(ตัวแปร $ACCUMULATOR) โดยตรง

ตัวอย่างเช่น:

$str = ฟอร์มไลน์ <<'END', 1,2,3;
@<<< @||| @>>>
END

พิมพ์ "ว้าว ฉันเพิ่งเก็บ '$^A' ไว้ในตัวสะสม!\n";

หรือจะทำ เขียน () รูทีนย่อยซึ่งก็คือเพื่อ เขียน() อะไร วิ่ง() คือการ พิมพ์f()ที่
นี้:

ใช้ปลาคาร์พ;
การเขียนย่อย {
บ่น "การใช้งาน: เขียน PICTURE ARGS" เว้นแต่ @_;
รูปแบบ $ ของฉัน = กะ;
$^A = "";
แบบฟอร์ม($format,@_);
ส่งคืน $^A;
}

$string = swrite(<<'สิ้นสุด', 1, 2, 3);
ตรวจสอบฉันออก
@<<< @||| @>>>
END
พิมพ์ $string;

คำเตือน


จุดเดียวที่สิ้นสุดรูปแบบยังสามารถสิ้นสุดข้อความเมลที่ส่งผ่าน a . ก่อนเวลาอันควร
การกำหนดค่าจดหมายทางอินเทอร์เน็ตไม่ถูกต้อง (และจากประสบการณ์ การกำหนดค่าผิดพลาดดังกล่าวเป็นกฎ
ไม่ใช่ข้อยกเว้น) ดังนั้นเวลาส่งรหัสรูปแบบทางไปรษณีย์ คุณควรเยื้องมัน
ว่าจุดสิ้นสุดรูปแบบไม่ได้อยู่ที่ระยะขอบด้านซ้าย สิ่งนี้จะป้องกันการตัด SMTP

ตัวแปรคำศัพท์ (ที่ประกาศด้วย "my") จะไม่ปรากฏให้เห็นภายในรูปแบบ เว้นแต่ว่า format
ถูกประกาศภายในขอบเขตของตัวแปรศัพท์

หากสภาพแวดล้อมของโปรแกรมระบุสถานที่ LC_NUMERIC และ "ใช้สถานที่" มีผล
เมื่อมีการประกาศรูปแบบ ภาษาจะใช้เพื่อระบุอักขระจุดทศนิยมใน
เอาต์พุตที่จัดรูปแบบ เอาต์พุตที่จัดรูปแบบไม่สามารถควบคุมโดย "ใช้สถานที่" ในขณะที่
เขียน() ถูกเรียก. ดู perllocale สำหรับการอภิปรายเพิ่มเติมเกี่ยวกับการจัดการสถานที่

ภายในสตริงที่จะแสดงในช่องข้อความที่มีความยาวคงที่ แต่ละตัวควบคุม
อักขระถูกแทนที่ด้วยช่องว่าง (แต่จำความหมายพิเศษของ "\r" ไว้เมื่อใช้
โหมดเติม) สิ่งนี้ทำเพื่อหลีกเลี่ยงการวางแนวเมื่ออักขระควบคุม "หายไป" บนบางส่วน
สื่อส่งออก

ใช้ perlform ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad