Perl 7 được công bố

Tại hội nghị ảo ngày nay của các nhà phát triển ngôn ngữ Perl công bố một dự án Perl 7 sẽ tiếp tục phát triển nhánh Perl 5 một cách suôn sẻ mà không thực hiện những thay đổi căn bản. Perl 7 sẽ được phát hành tương tự Perl 5.32.0, ngoại trừ các cài đặt mặc định khác phù hợp hơn với thực tiễn phát triển hiện đại. Nếu không, Perl 7 sẽ vẫn giống như Perl 5 và vẫn tương thích với các ứng dụng đã phát triển trước đó.

Một thay đổi đáng kể về số phiên bản sẽ đóng vai trò như một loại dấu phân cách cho việc chuyển đổi sang mô hình mới nhằm tăng cường chức năng của ngôn ngữ Perl mà không vi phạm đáng kể khả năng tương thích ngược.
Việc phát hành Perl 7 được kỳ vọng sẽ giúp thu hút các nhà phát triển mới đến với Perl và giúp hợp lý hóa quá trình thêm các tính năng mới quan trọng vào ngôn ngữ trong khi vẫn duy trì khả năng tương thích với cơ sở mã của các dự án hiện có. Số 7 được chọn vì Perl 6 được sử dụng để phát triển ngôn ngữ hiện nay đang phát triển dưới cái tên riêng Raku. Bản phát hành đầu tiên của Perl 7 dự kiến ​​sẽ ra mắt vào năm tới. Nhánh Perl 5.32 sẽ là nhánh cuối cùng trong chuỗi Perl 5 và được lên kế hoạch hỗ trợ từ 5 đến 10 năm.

Thay đổi đáng chú ý nhất trong Perl 7 là việc đưa vào "khắt khe“, ngụ ý kiểm tra nghiêm ngặt việc khai báo biến, sử dụng con trỏ tượng trưng và phép gán chương trình con. Sử dụng "use strict" là một hình thức tốt và được hầu hết các nhà phát triển sử dụng. Tương tự, theo mặc định, họ dự định kích hoạt xử lý cảnh báo (“sử dụng cảnh báo").

Perl 7 cũng hy vọng sẽ ổn định và kích hoạt theo mặc định một số tính năng thử nghiệm hiện có, chẳng hạn như chữ ký hàm (“sử dụng tính năng 'chữ ký'"), cho phép, khi xác định hàm, xác định các đối số đến và tự động kiểm tra số của chúng (bạn có thể viết “sub foo ($left, $right) {” thay vì “sub foo { của tôi($left, $right) ) = @_;"). Họ có kế hoạch bao gồm sự hỗ trợ mặc định cho toán tử “isa” để kiểm tra xem một đối tượng là một thể hiện của một lớp được chỉ định hay một lớp dẫn xuất từ ​​nó (“if( $obj isa Package::Name)”, cũng như vô hiệu hóa hậu tố hoạt động (postderef) “$ sref->$*" thay vì "${ $sref }", "$aref->@*" thay vì "@{ $aref }" và "$href->%{ ... }" thay vì "%$href{ ... } "

Các ứng cử viên bị vô hiệu hóa theo mặc định trong Perl 7 là:

  • Ký hiệu gọi đối tượng gián tiếp ("không có tính năng qw(gián tiếp)") là một cách gọi đối tượng cũ, sử dụng khoảng trắng thay vì "->" ("phương thức $object @param" thay vì "$object->$method(@param)"). Ví dụ: thay vì “my $cgi = new CGI”, bạn sẽ luôn sử dụng “my $cgi = CGI->new”.
  • Bộ mô tả tệp trần không có khai báo biến ("không có từ trần::filehandle") - sử dụng cấu trúc như “open FH, $file” sẽ dẫn đến lỗi, cần sử dụng “open my $fh, $file”. Thay đổi sẽ không ảnh hưởng đến các bộ mô tả tệp tiêu chuẩn STDIN, STDOUT, STDERR, ARGV, ARGVOUT và DATA.
  • Mảng và hàm băm đa chiều giả kiểu Perl 4 ("không đa chiều").
    Ví dụ: chỉ định “$hash{1, 2}” sẽ dẫn đến lỗi; bạn cần sử dụng một mảng trung gian, ví dụ “$hash{join($;, 1, 2)}”.

  • Khai báo nguyên mẫu theo kiểu Perl 4 (bạn cần sử dụng "use :prototype()").

Trong các kế hoạch xa hơn, họ dự kiến ​​sẽ bật hỗ trợ Unicode theo mặc định, điều này sẽ giúp các nhà phát triển không phải chỉ định “sử dụng utf8” trong mã. Đối với các mô-đun và tập lệnh có vấn đề với cài đặt mặc định mới, có thể hoàn nguyên về hành vi Perl 5 bằng cách thêm dòng "use compat::Perl5" vào mã. Các cài đặt riêng lẻ cũng sẽ được lưu và có thể được thay đổi riêng lẻ.

Nguồn: opennet.ru

Thêm một lời nhận xét