ค้นหาเว็บไซต์

ภาษาโปรแกรม Perl 5.40 ได้เปิดตัวแล้ว นี่คือความเปลี่ยนแปลงใหม่


ภาษาโปรแกรม Perl 5.40 ได้นำเสนอคำสำคัญ CLASS ใหม่ การจัดการข้อผิดพลาดที่พัฒนาด้วย try/catch, คุณสมบัติ :reader สำหรับตัวแปรฟิลด์ และอื่นๆ

Perl 5.40 รุ่นใหม่ที่เพิ่งปล่อยออกมานำการปรับปรุงหลัก การอัปเดตความปลอดภัย และการเปลี่ยนแปลงในภาษาสคริปต์ที่ได้รับความนิยม โดยต่อยอดคุณสมบัติที่แข็งแกร่งจากเวอร์ชัน 5.38 ก่อนหน้า

การอัปเดตนี้แนะนำฟังก์ชันใหม่ ปรับปรุงฟังก์ชันที่มีอยู่ และแก้ไขช่องโหว่ด้านความปลอดภัยที่สำคัญ นี่คือรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนั้น

มีอะไรใหม่ในภาษาโปรแกรม Perl 5.40

หนึ่งในคุณสมบัติเด่นของ Perl 5.40 คือการเพิ่มคำสำคัญ __CLASS__ การเพิ่มใหม่นี้ช่วยให้สามารถดึงชื่อคลาสได้อย่างแม่นยำมากขึ้นภายในบริบทที่ใช้คลาส เช่น เมธอดและตัวกำหนดค่า field มันให้การอ้างอิงคลาสที่รู้เวลาใช้งาน ซึ่งมีประโยชน์อย่างยิ่งในระหว่างการประมวลผลตัวสร้าง (constructor) ซึ่งไม่สามารถเข้าถึง “$self” ได้

นอกจากนี้ โปรแกรมเมอร์ Perl สามารถใช้แอตทริบิวต์ :reader สำหรับตัวแปรฟิลด์ของคลาสเพื่อสร้างเมธอดตัวเข้าถึงโดยอัตโนมัติ ทำให้โค้ดเรียบง่ายและอ่านง่ายขึ้น การอัปเดตยังรวมถึงการอนุญาตให้มีช่องว่างในตัวเลือกบรรทัดคำสั่ง -M ให้สอดคล้องกับพฤติกรรมที่มีอยู่ของตัวเลือก -I ด้วย

มีการปรับปรุงไวยากรณ์ที่สำคัญด้วยการนำตัวดำเนินการ logical xor ^^ มาใช้ ทำให้ชุดตัวดำเนินการเชิงตรรกะของ Perl สมบูรณ์ขึ้น ในขณะเดียวกัน ฟีเจอร์อย่างบล็อก try/catch และการวนซ้ำผ่านหลายค่าโดยใช้ for ก็ได้เปลี่ยนจากสถานะทดลองไปสู่สถานะเสถียร แสดงให้เห็นถึงความสมบูรณ์และความน่าเชื่อถือในการใช้งาน

ในด้านความปลอดภัย Perl 5.40 แก้ไขช่องโหว่ที่สำคัญหลายรายการ รวมถึง CVE-2023-47038 ซึ่งแก้ไขปัญหา buffer overflow และ CVE-2023-47039 ซึ่งแก้ไขความเสี่ยงการถูก hijack ไบนารีบนระบบ Windows

เกี่ยวกับความไม่เข้ากันและฟังก์ชันที่เลิกใช้งาน การอัปเดตนี้ได้มีการเปลี่ยนแปลงซึ่งอาจส่งผลกระทบต่อสคริปต์ที่มีอยู่แล้ว รวมถึงการปรับปรุงฟังก์ชัน reset EXPR ซึ่งตอนนี้จะกระตุ้น ‘set magic’ ในสเกลาร์ อาจส่งผลกระทบต่อสคริปต์เก่าที่ก่อนหน้านี้ไม่มีผล

นอกจากนี้ Perl ยังคงยกเลิกการใช้ฟีเจอร์และไวยากรณ์บางอย่างที่อาจทำให้เกิดความกำกวมหรือข้อผิดพลาด เช่น การตีความ barewords ของคลาสเป็น file handles

Perl 5.40 ยังมีการอัปเดตโมดูลหลากหลายตั้งแต่ “Archive::Tar” ไปจนถึง “IO::Socket::IP” พร้อมกับการเพิ่มโมดูลใหม่ ๆ เช่น “Term::Table” และ “Test2::Suite” เข้าไปในแกนหลักของ Perl ซึ่งช่วยลดการพึ่งพาสำหรับการทดสอบโมดูลบน CPAN

สุดท้าย การเปิดตัวใหม่นี้มีการปรับปรุงประสิทธิภาพ รวมถึงการปรับแต่งการดำเนินการปฏิเสธและการจัดการที่ดียิ่งขึ้นของการปรับแต่ง TARGMY แบบทั่วไป ซึ่งสามารถเร่งความเร็วการประมวลผลของการดำเนินการเฉพาะได้อย่างมาก

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