Perl 7 ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Perl 5 Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстиости

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ совСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Perl ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠ» ΠΏΠ»Π°Π½Ρ‹ ΠΏΠΎ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌΡƒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Π²Π΅Ρ‚ΠΊΠΈ Perl 5 ΠΈ созданию Π²Π΅Ρ‚ΠΊΠΈ Perl 7. Π’ Ρ…ΠΎΠ΄Π΅ дискуссий ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ совСт согласился, Ρ‡Ρ‚ΠΎ нСдопустимо Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡƒΠΆΠ΅ написанным для Perl 5 ΠΊΠΎΠ΄ΠΎΠΌ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случаСв, ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ совмСстимости Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для устранСния уязвимостСй. Π‘ΠΎΠ²Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡˆΡ‘Π» ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ язык Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ слСдуСт Π±ΠΎΠ»Π΅Π΅ интСнсивно ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, упростив ΠΏΡ€ΠΈ этом доступ ΠΊ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠΌΡΡ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°ΠΌ ΠΈ стимулируя ΠΈΡ… Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π²Π΅Ρ‚ΠΊΠ΅ Perl 7 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ, Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ»Π°Π½ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ постСпСнноС ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Perl 5 Π² Perl 7 Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости с ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Выпуск Perl 7.0 ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Perl 5.xx.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… выпусков Perl 5 продолТится Π² ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌ Π²ΠΈΠ΄Π΅ — добавляСмыС Π² Π²Π΅Ρ‚ΠΊΡƒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, нСсовмСстимыС со старым ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ явном ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€Π°Π³ΠΌΡ‹ «use вСрсия» ΠΈΠ»ΠΈ «use feature Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ». НапримСр, Π² вСрсии Perl 5.010 Π±Ρ‹Π»ΠΎ прСдставлСно Π½ΠΎΠ²ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «say», Π½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ «say», ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Π²ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ явном ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡ€Π°Π³ΠΌΡ‹ «use feature ‘say'».

ДобавляСмый Π² язык Π½ΠΎΠ²Ρ‹ΠΉ синтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… выпусках ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ» ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ошибки, становится доступСн сразу Π±Π΅Π· нСобходимости указания ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°Π³ΠΌ. НапримСр, Π² Perl 5.36 появится ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ синтаксис Π΅Π΄ΠΈΠ½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка («foreach my ($key, $value) (%hash) {«), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ доступСн сразу, Π΄Π°ΠΆΠ΅ Π² ΠΊΠΎΠ΄Π΅ Π±Π΅Π· ΠΏΡ€Π°Π³ΠΌΡ‹ «use v5.36».

Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ Π² Perl 5.36 ΠΏΡ€ΠΈ использовании ΠΏΡ€Π°Π³ΠΌΡ‹ «use v5.36» активируСтся 13 Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ возмоТностСй (‘say’, ‘state’, ‘current_sub’, ‘fc’, ‘lexical_subs’, ‘signatures’, ‘isa’, ‘bareword_filehandles’, ‘bitwise’, ‘evalbytes’, ‘postderef_qq’, ‘unicode_eval’ ΠΈ ‘unicode_strings’), Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌΡ‹ «use strict» ΠΈ «use warnings» ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ косвСнной Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ΠΊΠΎΠ³Π΄Π° вмСсто «->» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π») ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΈ Ρ…ΡΡˆΠ΅ΠΉ Π² стилС Perl 4 («$hash{1, 2}»).

Когда ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ накопится достаточно ΠΌΠ½ΠΎΠ³ΠΎ вмСсто ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ выпуска Perl 5.x Π±ΡƒΠ΄Π΅Ρ‚ сформирована вСрсия Perl 7.0, которая станСт своСобразным срСзом состояния, Π½ΠΎ останСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстимой с Perl 5. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ настроСк потрСбуСтся явноС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ ΠΏΡ€Π°Π³ΠΌΡ‹ «use v7». Π’.Π΅. ΠΊΠΎΠ΄ с ΠΏΡ€Π°Π³ΠΌΠΎΠΉ «use v7» ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ «ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Perl», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ доступны Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ измСнСния языка, Π° Π±Π΅Π· — «ΠΊΠΎΠ½ΡΠ΅Ρ€Π²Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Perl», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ останСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстим с ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌΠΈ выпусками.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru