เมื่อคืนที่การประชุม Perl และ Raku ในระบบคลาวด์ ซอว์เยอร์ เอ็กซ์ ประกาศแล้ว เปลี่ยนเวอร์ชันหลักของ Perl จาก 5 เป็น 7 งานกำลังดำเนินการอยู่ เวอร์ชันใหม่จะออกภายในหนึ่งปี คุณไม่ควรคาดหวังถึงการเปลี่ยนแปลงมากมาย กล่าวโดยย่อคือ Perl 7 ยังคงเป็น Perl 5.32 เดิมที่มีการตั้งค่าเริ่มต้นสมัยใหม่ คุณไม่จำเป็นต้องเปิดใช้งานคุณสมบัติที่คุณใช้อยู่แล้วอย่างชัดเจนอีกต่อไป เพราะคุณสมบัติเหล่านั้นจะถูกเปิดใช้งานสำหรับคุณ!
จะรวมอะไรบ้าง?
รายชื่อยังไม่สมบูรณ์ แต่เข้มงวดและเตือนแน่นอน! ในรุ่นที่ 7 ลายเซ็นมักจะยังคงเป็นแบบทดลอง และ utf8 จะไม่มีเวลารวมไว้ด้วย
อะไรจะถูกปิดการใช้งาน?
- การเรียกวิธีการทางอ้อม:
{;
แพ็คเกจฟู;ย่อยใหม่ { อวยพร {} }
แถบย่อย { พิมพ์ "สวัสดีจากบาร์ ()! n" x ป๊อป }
}#โทรได้ปกติ
$foo = Foo->new(); ของฉัน
# โทรทางอ้อม
บาร์ $fo 42; - คำเปล่า (คำเปล่า) เป็นตัวระบุคำอธิบาย (ยกเว้นคำมาตรฐาน (STDIN, STDOUT, STDERR))
- Perl 4 สไตล์หลอกแฮชหลายมิติ
# ตัวอย่างที่นำมาจาก perldoc perlvar
$foo{$x,$y,$z}
# จริงๆ แล้วหมายถึง $foo{join($;, $x, $y, $z)} - ต้นแบบเก่าในสไตล์ Perl 4 ตอนนี้คุณต้องเขียนดังนี้:
ย่อย foo :prototype($$) ($left, $right) {
ส่งคืน $left + $right;
}อันดับแรกคือต้นแบบที่ส่งผลต่อการรวบรวมการโทร จากนั้นจึงสร้างลายเซ็นที่วางอาร์กิวเมนต์ในตัวแปรที่เหมาะสมขณะรันไทม์
อย่างไรก็ตาม ยังคงมีโอกาสที่จะส่งคืนทุกอย่างกลับเป็นกลุ่ม:
ใช้ความเข้ากันได้::perl5;
หรือทีละครั้ง
Perl 5.32 เข้าสู่การสนับสนุนระยะยาวเป็นระยะเวลา 5 ปี
ประกาศเพิ่มเติมจาก Brian D Foy: https://www.perl.com/article/announcing-perl-7/
เวอร์ชัน TL; DR จากเขา: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
ที่มา: linux.org.ru