Ngôn ngữ lập trình Perl 5.44 có sẵn

Sau một năm phát triển, nhánh ổn định mới của ngôn ngữ lập trình Perl, phiên bản 5.44, đã được phát hành. Trong quá trình chuẩn bị cho phiên bản mới này, khoảng 270 dòng mã đã được thay đổi (không bao gồm tài liệu và mã được tạo tự động – 110 dòng), ảnh hưởng đến 860 tệp và có 71 nhà phát triển đóng góp 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 những lỗi nghiêm trọng nhất được phát hiện trong quá trình triển khai Perl 5.44.0. Cùng 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. Quá trình phát triển đã bắt đầu trên nhánh thử nghiệm 5.45, nhánh này sẽ là cơ sở cho bản phát hành ổn định Perl 5.46 vào nửa đầu năm 2027, trừ khi có quyết định chuyển sang hệ thống đánh số phiên bản 7.x.

Những thay đổi chính:

  • Đã thêm khả năng thử nghiệm sử dụng các tham số được đặt tên trong chữ ký hàm. Các tham số này xác định danh sách các biến được truyền cho 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. Khả 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 bằng cách sử dụng các cặp khóa/giá trị và cú pháp tương tự như việc gán các 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}}"; }
  • Biểu thức chính quy hiện có chế độ thử nghiệm 'enhanced_xx', cho phép sử dụng bộ sửa đổi "/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 nhận xét. 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ợ cho đặc 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 được bao phủ bởi 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ế độ "use utf8".
  • Đã khắc phục các lỗ hổng tràn bộ đệm trong các hàm Perl_study_chunk (CVE-2026-8376, ảnh hưởng đến các bản dựng 32-bit) và S_measure_struct (CVE-2026-57432), cũng như lỗi tràn bộ đếm 16-bit trong công cụ Regex (CVE-2026-13221), có thể dẫn đến việc thực thi biểu thức chính quy không chính xác.
  • 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: opennet.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