หลังจากพัฒนามา 11 เดือน ในที่สุดก็ได้เปิดตัว Perl เวอร์ชัน 5.34 ซึ่งเป็นเวอร์ชันเสถียรใหม่ เวอร์ชันใหม่นี้มีการเปลี่ยนแปลงโค้ดประมาณ 280 บรรทัด ส่งผลกระทบต่อไฟล์ 2100 ไฟล์ และมีนักพัฒนา 78 คนเข้าร่วม
เวอร์ชัน 5.34 ได้รับการเผยแพร่ตามกำหนดการพัฒนาที่กำหนดไว้เมื่อแปดปีก่อน ซึ่งกำหนดให้มีการเผยแพร่เวอร์ชันเสถียรใหม่ปีละครั้ง และเวอร์ชันย่อยทุกสามเดือน เวอร์ชันย่อยแรกคือ Perl 5.34.1 มีกำหนดเผยแพร่ในอีกประมาณหนึ่งเดือนข้างหน้า โดยจะแก้ไขข้อบกพร่องสำคัญๆ ที่พบระหว่างการใช้งาน Perl 5.34.0 นอกจากการเปิดตัว Perl 5.34 แล้ว การสนับสนุนเวอร์ชัน 5.30 ก็สิ้นสุดลงแล้วเช่นกัน การอัปเดตในอนาคตจะเผยแพร่ได้ก็ต่อเมื่อพบปัญหาความปลอดภัยที่สำคัญเท่านั้น การพัฒนาเวอร์ชันทดลอง 5.35 ก็เริ่มต้นขึ้นเช่นกัน ซึ่งจะเป็นพื้นฐานสำหรับ Perl 5.36 เวอร์ชันเสถียรในเดือนพฤษภาคมหรือมิถุนายน 2022 เว้นแต่ว่า Perl 5 จะถูกแทนที่ด้วย Perl 7
การเปลี่ยนแปลงที่สำคัญ:
- มีการเพิ่มการรองรับการทดลองสำหรับการจัดการข้อยกเว้นแบบ try/catch ซึ่งสามารถใช้แทนไวยากรณ์ eval ที่ไม่ชัดเจนได้ บล็อก try ประกอบด้วยบล็อกโค้ดสำหรับดำเนินการ และบล็อก catch ประกอบด้วยโค้ดสำหรับจัดการข้อยกเว้นใดๆ ที่อาจเกิดขึ้นระหว่างการดำเนินการบล็อกแรก บล็อก catch กำหนดตัวแปรที่มีข้อมูลที่ส่งผ่านเมื่อเกิดข้อยกเว้น (ตัวอย่างเช่น หากเกิดข้อยกเว้น สตริงที่ระบุจะถูกส่งเป็นอาร์กิวเมนต์ไปยังการเรียกใช้ die) คำสั่ง Jump ซึ่งรวมถึง return, goto, next, last และ redo ได้รับอนุญาตให้ใช้ภายในบล็อก try และ catch ใช้คุณลักษณะ 'try'; try { a_function(); } catch ($e) { warn "An error occurred: $e"; }
- ขณะนี้อนุญาตให้ใช้ขอบเขตล่างว่างสำหรับช่วงในบล็อก "{a,n}" รวมถึงบล็อกที่ใช้ในนิพจน์ทั่วไปด้วย ตัวอย่างเช่น สามารถระบุ "{,3}" ได้แล้ว
- ตอนนี้มีการอนุญาตให้มีช่องว่างภายในพารามิเตอร์ที่มีวงเล็บปีกกา {m,n}, \b{}, \g{}, \k{}, \N{}, \o{} และ \x{} หากช่องว่างนั้นอยู่ติดกับวงเล็บปีกกาหรือเครื่องหมายจุลภาค สำหรับการหลบหนีแบบคู่ หรือในรูปแบบนิพจน์ทั่วไป เช่น ตอนนี้คุณสามารถระบุ "qr/a{ 5, 7 }/" หรือ "\x{ FFFC }" ได้โดยไม่ต้องใส่เครื่องหมายคำพูดสำหรับค่า
- นอกจากลิเทอรัลเลขฐานสิบหก (0xddddd) และเลขฐานสอง (0bddddd) แล้ว ยังมีการเสนอไวยากรณ์ใหม่สำหรับการระบุเลขฐานแปด นั่นคือ "0oddddd" สามารถใช้เครื่องหมายขีดล่าง (0o123_456) เพื่อความชัดเจนได้ นอกจากนี้ ฟังก์ชัน oct() ในตัวยังรองรับไวยากรณ์ใหม่นี้ด้วย
- การรั่วไหลของหน่วยความจำได้รับการแก้ไขแล้วในกลไกนิพจน์ปกติ
- เวอร์ชันของโมดูลที่รวมอยู่ในชุดการแจกจ่ายพื้นฐานได้รับการอัปเดตแล้ว แพ็กเกจนี้มีโมดูล ExtUtils::PL2Bat สำหรับแปลงสคริปต์ Perl เป็นไฟล์ BAT เพื่อเรียกใช้งานใน Windows.
- เพิ่มการสนับสนุนการสร้าง Perl สำหรับระบบ 9front (ซึ่งเป็นเวอร์ชันแยกของ Plan9) ปรับปรุงการสนับสนุน Plan9 และ macOSการสนับสนุนระบบปฏิบัติการ Symbian ได้ถูกยกเลิกแล้ว
ที่มา: opennet.ru
