Perl 5.44


3

Sau một năm phát triển xuất bản phát hành một nhánh ổn định mới của ngôn ngữ lập trình Perl - 5.44... Khi nào chuẩn bị Phiên bản mới đã thay đổi khoảng 270 dòng mã (không bao gồm tài liệu và mã được tạo tự động - 110 dòng), các thay đổi ảnh hưởng đến 860 tệp và có 71 nhà phát triển tham gia vào quá trình phát triển.

Phiên bản 5.44 được phát hành theo đúng lịch trình phát triển cố định đã được thiết lập từ mười ba năm trước, theo đó mỗi năm phát hành một nhánh ổn định mới và mỗi ba tháng phát hành các bản cập nhật nhỏ. Bản cập nhật nhỏ đầu tiên, Perl 5.44.1, dự kiến ​​sẽ được phát hành trong khoảng một tháng nữa, nhằm khắc phục các lỗi nghiêm trọng nhất được phát hiện trong quá trình triển khai Perl 5.44.0. Với việc phát hành Perl 5.44, việc hỗ trợ cho nhánh 5.40 đã kết thúc; các bản cập nhật cho nhánh này có thể chỉ được phát hành trong tương lai nếu phát hiện ra các vấn đề bảo mật nghiêm trọng. Đa băt đâu Quá trình phát triển nhánh thử nghiệm 5.45, sẽ là cơ sở cho việc phát hành ổn định Perl 5.46 vào nửa đầu năm 2027, trừ khi có quyết định khác. đi qua đến số 7.x.

Chìa khóa thay đổi:

  • Thêm khả năng thử nghiệm sử dụng các tham số được đặt tên trong chữ ký Các hàm định nghĩa danh sách các biến được truyền vào hàm không nằm trong phần thân hàm, mà nằm trong quá trình khai báo hàm. Tính năng mới này cho phép truyền các tham số không theo thứ tự nghiêm ngặt, mà theo bất kỳ thứ tự nào, sử dụng các cặp khóa/giá trị và cú pháp tương tự như việc gán phần tử trong bảng băm:
    • cú pháp cũ: sub f { my ($x, $y) = @_; …} f(1, 2);
    • chữ ký: sub f ($x, $y) { … } f(1, 2);
    • chữ ký với các tham số được đặt tên: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Đã thêm hỗ trợ thử nghiệm cho việc sử dụng bí danh (con trỏ đến con trỏ) trong vòng lặp foreach với nhiều biến. Tính năng này cho phép bạn tạo bí danh trong vòng lặp foreach khi truy xuất nhiều giá trị trong một lần lặp. Ví dụ, bạn có thể tạo bí danh cho một phần tử băm với một mảng khi lặp qua cả khóa và giá trị của băm: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "Mảng $key chứa: @items"; } # Trước phiên bản 5.44, cần phải giải tham chiếu: foreach my ( $key, $var ) ( %hash ) { say "Mảng $key chứa: @$var"; } } # Không sử dụng các tính năng thử nghiệm như refaliasing và declared_refs: foreach my $key (keys %hash) { say "Mảng $key chứa: @{$hash{$key}}"; }
  • Trong biểu thức chính quy thực hiện Chế độ thử nghiệm 'enhanced_xx' cho phép sử dụng bộ điều chỉnh /xx với các lớp ký tự trong ngoặc vuông ([a-zA-Z]) để tách chúng thành nhiều dòng hoặc chèn chú thích. Ví dụ, điều kiện if ($text =~ m/[a-zA-Z]/){ có thể được viết như sau: if ($text =~ m/[ a-z # chữ thường A-Z # chữ hoa ]/xx) {
  • Bộ tạo số giả ngẫu nhiên sử dụng lệnh gọi hệ thống getentropy() để lấy entropy trên các hệ thống hỗ trợ nó (Linux, BSD, macOSTrên các hệ thống khác, entropy được thu được bằng cách đọc từ thiết bị /dev/urandom hoặc sử dụng hàm băm của thời gian, ID tiến trình và giá trị con trỏ.
  • Đã thêm hỗ trợ đặc điểm kỹ thuật Unicode 17.0.
  • Việc tuân thủ nghiêm ngặt các quy tắc Unicode đã được đảm bảo cho tên định danh và các nhóm biểu thức chính quy, với khoảng 160 ký tự Unicode trước đây thuộc lớp w nay bị cấm. Ví dụ, lớp w, bao gồm tất cả các chữ cái, chữ số và ký tự gạch dưới, giờ đây loại trừ các chữ cái Latinh được khoanh tròn, trông giống như các chữ cái thực nhưng không phải là chữ cái. Thay đổi hành vi này chỉ ảnh hưởng đến các chương trình sử dụng chế độ utf8.
  • Khắc phục các lỗ hổng do tràn bộ đệm trong các hàm Perl_study_chunk (CVE-2026-8376, xuất hiện trong các assembly 32-bit) và S_measure_struct (CVE-2026-57432), cũng như tràn bộ đếm 16 bit trong công cụ Regex (CVE-2026-13221), điều này có thể khiến biểu thức chính quy bị lỗi.
  • Việc nhảy đến các vị trí bên trong vòng lặp và cấu trúc khối bằng toán tử goto bị cấm. Tính năng này đã bị loại bỏ vào năm 2010.
  • Các tối ưu hóa hiệu năng đã được thực hiện để tăng tốc phép cộng, trừ và nhân số nguyên, xử lý chữ ký hàm và điền dữ liệu vào các bảng băm từ danh sách khóa/giá trị với các khóa chuỗi đã biết tại thời điểm biên dịch.

Nguồn: linux.org.ru

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster