ประกาศ Perl 7 แล้ว

ในการประชุมเสมือนจริงของนักพัฒนาภาษา Perl วันนี้ ประกาศ โครงการ Perl 7 ที่จะพัฒนาสาขา Perl 5 ต่อไปได้อย่างราบรื่นโดยไม่เกิดการเปลี่ยนแปลงครั้งใหญ่ Perl 7 จะเป็นรุ่นที่คล้ายกัน Perl 5.32.0ยกเว้นการตั้งค่าเริ่มต้นอื่นๆ ที่สอดคล้องกับแนวทางการพัฒนาสมัยใหม่มากกว่า มิฉะนั้น Perl 7 จะยังคงเหมือนกับ Perl 5 และจะยังคงเข้ากันได้กับแอปพลิเคชันที่พัฒนาก่อนหน้านี้

การเปลี่ยนแปลงที่สำคัญในหมายเลขเวอร์ชันจะทำหน้าที่เป็นตัวคั่นสำหรับการเปลี่ยนไปใช้โมเดลใหม่เพื่อเพิ่มฟังก์ชันการทำงานของภาษา Perl โดยไม่มีการละเมิดความเข้ากันได้แบบย้อนหลังอย่างเห็นได้ชัด
การเปิดตัว Perl 7 คาดว่าจะช่วยดึงดูดนักพัฒนาหน้าใหม่ให้เข้ามาใช้ Perl และช่วยปรับปรุงกระบวนการเพิ่มคุณสมบัติใหม่ที่สำคัญให้กับภาษา ขณะเดียวกันก็รักษาความเข้ากันได้กับฐานโค้ดของโครงการที่มีอยู่ เลือกหมายเลข 7 เพราะ Perl 6 ถูกใช้ในการพัฒนาภาษาที่เป็นอยู่ในปัจจุบัน กำลังพัฒนา ภายใต้ชื่อแยก Raku คาดว่าจะเปิดตัว Perl 7 ครั้งแรกในปีหน้า Perl 5.32 จะเป็นเวอร์ชันสุดท้ายในซีรีส์ Perl 5 และมีแผนจะรองรับเป็นเวลา 5 ถึง 10 ปี

การเปลี่ยนแปลงที่โดดเด่นที่สุดใน Perl 7 คือการรวม "เข้มงวด“ ซึ่งหมายถึงการตรวจสอบการประกาศตัวแปรอย่างเข้มงวด การใช้พอยน์เตอร์สัญลักษณ์ และการกำหนดรูทีนย่อย การใช้ "use strict" เป็นรูปแบบที่ดีและถูกใช้โดยนักพัฒนาส่วนใหญ่ ในทำนองเดียวกัน โดยค่าเริ่มต้น พวกเขาวางแผนที่จะเปิดใช้งานการประมวลผลคำเตือน (“ใช้คำเตือน«)

Perl 7 ยังหวังที่จะรักษาเสถียรภาพและเปิดใช้งานคุณลักษณะทดลองบางอย่างที่มีอยู่แล้วเป็นค่าเริ่มต้น เช่น ลายเซ็นฟังก์ชัน (“ใช้ฟีเจอร์ 'ลายเซ็น'”) ซึ่งช่วยให้กำหนดอาร์กิวเมนต์ขาเข้าและตรวจสอบหมายเลขได้โดยอัตโนมัติ (คุณสามารถเขียน “sub foo ($left, $right) {” แทน “sub foo {” ของฉัน($left, $right) ) = @_;"). พวกเขาวางแผนที่จะรวมการสนับสนุนเริ่มต้นสำหรับตัวดำเนินการ "isa" เพื่อตรวจสอบว่าวัตถุเป็นอินสแตนซ์ของคลาสที่ระบุหรือคลาสที่ได้รับมาจากคลาสนั้น (“if( $obj isa Package::Name)” รวมถึงการอ้างอิงแบบ postfix การดำเนินการ (postderef) “$ sref->$*" แทนที่จะเป็น "${ $sref }", "$aref->@*" แทนที่จะเป็น "@{ $aref }" และ "$href->%{ ... }" แทนที่จะเป็น "%$href{ ... } "

คู่แข่งที่ถูกปิดการใช้งานโดยค่าเริ่มต้นใน Perl 7 คือ:

  • สัญกรณ์การเรียกวัตถุทางอ้อม ("ไม่มีคุณสมบัติ qw (ทางอ้อม)") เป็นวิธีดั้งเดิมในการเรียกวัตถุ โดยใช้ช่องว่างแทน "->" ("method $object @param" แทน "$object->$method(@param)") ตัวอย่างเช่น แทนที่จะใช้ “my $cgi = new CGI” คุณจะใช้ “my $cgi = CGI->new” เสมอ
  • ตัวอธิบายไฟล์เปล่าที่ไม่มีการประกาศตัวแปร ("ไม่มีคำเปล่า::filehandle") - การใช้โครงสร้างเช่น "open FH, $file" จะทำให้เกิดข้อผิดพลาด คุณต้องใช้ "open my $fh, $file" การเปลี่ยนแปลงจะไม่ส่งผลกระทบต่อตัวอธิบายไฟล์มาตรฐาน STDIN, STDOUT, STDERR, ARGV, ARGVOUT และ DATA
  • อาร์เรย์และแฮชหลายมิติแบบ Perl 4 สไตล์ ("ไม่มีหลายมิติ«)
    ตัวอย่างเช่น การระบุ “$hash{1, 2}” จะทำให้เกิดข้อผิดพลาด คุณต้องใช้อาร์เรย์ระดับกลาง เช่น “$hash{join($;, 1, 2)}”

  • ประกาศต้นแบบในรูปแบบ Perl 4 (คุณต้องใช้ "use :prototype()")

ในแผนที่ห่างไกล พวกเขาคาดว่าจะเปิดใช้งานการสนับสนุน Unicode เป็นค่าเริ่มต้น ซึ่งจะช่วยนักพัฒนาจากการระบุ "ใช้ utf8" ในโค้ด สำหรับโมดูลและสคริปต์ที่มีปัญหากับการตั้งค่าเริ่มต้นใหม่ คุณสามารถเปลี่ยนกลับไปใช้ลักษณะการทำงานของ Perl 5 ได้โดยการเพิ่มบรรทัด "use compat::perl5" ลงในโค้ด การตั้งค่าส่วนบุคคลจะถูกบันทึกและสามารถเปลี่ยนแปลงได้ทีละรายการ

ที่มา: opennet.ru

เพิ่มความคิดเห็น