หนึ่งปีหลังจากการเปิดตัว Perl 5.28.0 การเปิดตัวก็เกิดขึ้น Perl 5.30.0.
การเปลี่ยนแปลงที่สำคัญ:
- เพิ่มการรองรับ Unicode เวอร์ชัน 11, 12 และร่าง 12.1;
- ขีดจำกัดบน "n" ที่กำหนดในตัวระบุปริมาณนิพจน์ทั่วไปของรูปแบบ "{m, n}" ได้รับการเพิ่มเป็นสองเท่าเป็น 65534
- MetaCharacters ในข้อกำหนดคุณสมบัติค่าคุณสมบัติ Unicode ได้รับการสนับสนุนบางส่วนแล้ว
- เพิ่มการสนับสนุนสำหรับ qr'N{name}';
- ขณะนี้สามารถคอมไพล์ Perl เพื่อใช้การดำเนินการที่ปลอดภัยสำหรับเธรดของโลแคลได้เสมอ
- ขณะนี้รองรับความยาวตัวแปรที่จำกัดเมื่อเทียบกับรูปแบบนิพจน์ทั่วไปแล้ว
- ตอนนี้ใช้วิธีที่เร็วกว่าในการแปลงเป็น UTF-8
- ขณะนี้รองรับภาษาเตอร์ก UTF-8 โดยไม่มีปัญหา
- ลบการใช้แมโคร opASSIGN ออกจากเคอร์เนล
ฟังก์ชั่นที่ถูกลบออกและการเปลี่ยนแปลงที่เข้ากันไม่ได้:
- โมดูลที่ถูกเอาออก: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- ตัวแยกรูปแบบควรเป็นกราฟ
- ตอนนี้ตัวแยกควรเป็นกราฟ
- การใช้วงเล็บปีกกาซ้ายที่ไม่ได้ใช้ Escape "{" ในรูปแบบนิพจน์ทั่วไปที่เลิกใช้แล้วก่อนหน้านี้บางรายการไม่ได้รับอนุญาตแล้ว
- การกำหนดค่าที่ไม่เป็นศูนย์ให้กับ $[ (ดัชนีขององค์ประกอบอาร์เรย์แรก) เป็นอันตรายถึงชีวิตแล้ว
- sysread()/syswrite() ที่เลิกใช้แล้วก่อนหน้านี้เมื่อจัดการ :utf8 เป็นอันตรายถึงชีวิตแล้ว
- my() ในเงื่อนไขที่ผิดพลาดถูกปิดการใช้งานแล้ว;
- เลิกใช้แล้ว $* (ตัวแปรที่ใช้ในการเปิดใช้งานการจับคู่หลายบรรทัดและถูกลบออกใน Perl v5.10.0) และ $# (ตัวแปรที่ใช้ในการจัดรูปแบบตัวเลขเอาต์พุตและถูกลบออกใน Perl v5.10.);
- การใช้ dump() อย่างไม่มีเงื่อนไขเลิกใช้แล้ว
- ไฟล์ที่ถูกลบ::Glob::glob();
- pack() ไม่สามารถส่งคืน UTF-8 ที่ไม่ถูกต้องได้อีกต่อไป
- ชุดตัวเลขใดๆ ในสคริปต์ทั่วไปนั้นใช้ได้ในสคริปต์ที่ดำเนินการโดยสคริปต์อื่น
- JSON::PP รวม Allow_nonref เป็นค่าเริ่มต้น
ฟังก์ชันการทำงานที่เลิกใช้แล้ว:
- คุณไม่สามารถใช้มาโครต่างๆ ที่จัดการ UTF-8 ในโค้ด XS ได้อีกต่อไป
ที่มา: linux.org.ru