Perl 7 diumumkan

Pada persidangan maya pembangun bahasa Perl hari ini diumumkan projek Perl 7 yang akan meneruskan pembangunan cawangan Perl 5 dengan lancar tanpa membuat perubahan radikal. Perl 7 akan menjadi keluaran serupa Perl 5.32.0, kecuali tetapan lalai lain yang lebih konsisten dengan amalan pembangunan moden. Jika tidak, Perl 7 akan kekal sama seperti Perl 5 dan akan kekal serasi dengan aplikasi yang dibangunkan sebelum ini.

Perubahan ketara dalam nombor versi akan bertindak sebagai sejenis pemisah untuk peralihan kepada model baharu untuk meningkatkan kefungsian bahasa Perl tanpa pelanggaran keserasian ke belakang yang ketara.
Keluaran Perl 7 dijangka membantu menarik pembangun baharu ke Perl dan membantu menyelaraskan proses menambah ciri baharu yang penting pada bahasa sambil mengekalkan keserasian dengan asas kod projek sedia ada. Nombor 7 dipilih kerana Perl 6 digunakan untuk mengembangkan bahasa yang ada sekarang sedang berkembang di bawah nama berasingan Raku. Keluaran pertama Perl 7 dijangka tahun depan. Cawangan Perl 5.32 akan menjadi yang terakhir dalam siri Perl 5 dan dirancang untuk disokong selama 5 hingga 10 tahun.

Perubahan yang paling ketara dalam Perl 7 ialah kemasukan "ketat“, yang membayangkan semakan ketat perisytiharan berubah-ubah, penggunaan penunjuk simbolik dan tugasan subrutin. Menggunakan "guna ketat" adalah bentuk yang baik dan digunakan oleh kebanyakan pembangun. Begitu juga, secara lalai mereka merancang untuk membolehkan pemprosesan amaran (“gunakan amaran").

Perl 7 juga berharap untuk menstabilkan dan mendayakan secara lalai beberapa ciri percubaan sedia ada, seperti tandatangan fungsi (“gunakan ciri 'tandatangan'”), yang membenarkan, apabila mentakrifkan fungsi, untuk menentukan argumen masuk dan automatik menyemak nombornya (anda boleh menulis “sub foo ($kiri, $kanan) {” dan bukannya “sub foo { my($kiri, $kanan) ) = @_;"). Mereka merancang untuk menyertakan sokongan lalai untuk pengendali "isa" untuk menyemak sama ada objek ialah contoh kelas tertentu atau kelas yang diperoleh daripadanya (“jika( $obj isa Pakej::Nama)”, serta penyahrujukan postfix operasi (postderef) “$ sref->$*" bukannya "${ $sref }", "$aref->@*" bukannya "@{ $aref }" dan "$href->%{ ... }" bukannya "%$href{ ... } "

Pesaing untuk dilumpuhkan secara lalai dalam Perl 7 ialah:

  • Notasi panggilan objek tidak langsung ("tiada ciri qw(tidak langsung)") ialah cara lama untuk memanggil objek, menggunakan ruang dan bukannya "->" ("method $object @param" dan bukannya "$object->$method(@param)"). Sebagai contoh, bukannya "$cgi saya = CGI baharu", anda akan sentiasa menggunakan "$cgi saya = CGI->baru".
  • Deskriptor fail kosong tanpa pengisytiharan berubah ("tiada kata kosong::filehandle") - menggunakan binaan seperti “open FH, $file” akan membawa kepada ralat, anda perlu menggunakan “open my $fh, $file”. Perubahan tidak akan menjejaskan deskriptor fail standard STDIN, STDOUT, STDERR, ARGV, ARGVOUT dan DATA.
  • Tatasusunan berbilang dimensi tiruan gaya Perl 4 dan cincang ("tiada multidimensi").
    Contohnya, menyatakan "$hash{1, 2}" akan membawa kepada ralat; anda perlu menggunakan tatasusunan perantaraan, contohnya "$hash{join($;, 1, 2)}".

  • Mengisytiharkan prototaip dalam gaya Perl 4 (anda perlu menggunakan "use :prototype()").

Dalam rancangan yang lebih jauh, mereka mengharapkan untuk mendayakan sokongan Unicode secara lalai, yang akan menyelamatkan pembangun daripada menentukan "use utf8" dalam kod. Untuk modul dan skrip yang mempunyai masalah dengan tetapan lalai baharu, adalah mungkin untuk kembali kepada tingkah laku Perl 5 dengan menambahkan baris "use compat::perl5" pada kod. Tetapan individu juga akan disimpan dan boleh ditukar secara individu.

Sumber: opennet.ru

Tambah komen