Анализ рисков ΠΏΡ€ΠΈ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΠΈ Π² Тизнь ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ Perl 7

Дэн Π‘ΡƒΠΊ (Dan Book), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ 70 ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² CPAN, ΠΏΡ€ΠΎΠ²Ρ‘Π» Π°Π½Π°Π»ΠΈΠ· рисков ΠΏΡ€ΠΈ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° внСдрСния Perl 7. Напомним, Ρ‡Ρ‚ΠΎ Π² Π²Π΅Ρ‚ΠΊΠ΅ Perl 7 Π½Π°ΠΌΠ΅Ρ€Π΅Π²Π°ΡŽΡ‚ΡΡ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌ строгой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ «strict», Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ «use warnings» ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ряда ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ со старым ΠΊΠΎΠ΄ΠΎΠΌ.

ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ нСработоспособности Π² Perl 7 большого числа ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΠ· CPAN ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‡Ρ‚ΠΎ нСрСалистично Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° Π½Π°ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π³ΠΎΠ΄, особСнно с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ доступными. НововвСдСния ΠΈΠ· Perl 7 Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ позволят ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рассчитаны Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самой послСднСй вСрсии Perl.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΈΠ·-Π·Π° нСработоспособности Π² Perl 7 Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΈΠ· руководств, написанных для Perl 5.
  • НС ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΎ влияниС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ однострочников. Perl Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для написания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… скриптов, Π½ΠΎ ΠΈ для создания однострочников ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… сцСнариСв для Π½ΡƒΠΆΠ΄ администраторов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… использованиС Ρ€Π΅ΠΆΠΈΠΌΠ° strict излишнС.
  • Π£ дистрибутивов Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ поставки исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² для запуска скриптов Perl 7 ΠΈ Perl 5 (оТидаСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ истории с Python 2 ΠΈ 3).
  • Код написанный для Perl 7 Π½Π΅ обязан особо ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Perl 5, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ минимально ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.
  • Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, завязанныС Π½Π° Perl 5, ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ внСсСния исправлСний.
  • ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Perl 7 ΠΈΠ·-Π·Π° пСрСраспрСдСлСния рСсурсов Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΈΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй Perl.
  • Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ риск выгорания ΠΈ ΡƒΡ…ΠΎΠ΄Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Perl, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, инструмСнтариСв ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ·-Π·Π° возникновСния большой Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Π΅Π· Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ (Π½Π΅ всС согласны с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ создания Perl 7).
  • Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ помСняСтся ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π° Π² сообщСствС ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Perl.
  • Π‘ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΡ€Π²Π°Π½ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚ языка ΠΈΠ·-Π·Π° ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΈ ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ совмСстимости Perl 7 с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΈ отсутствии Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ.

Для сглаТивания Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… послСдствий Дэн Π‘ΡƒΠΊ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» свой ΠΏΠ»Π°Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π²Π° совмСстимости. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ΡΡ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ вмСсто 5.34.0 ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ выпуску Π½ΠΎΠΌΠ΅Ρ€ 7.0.0, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ косвСнной Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ try/catch. ИзмСнСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ «use strict» ΠΈ «use warnings», прСдлагаСтся Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ вСрсии Perl Π² ΠΊΠΎΠ΄Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€Π°Π³ΠΌΡƒ «use v7» (strict ΡƒΠΆΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ для «use v5.12» ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ… выпусков).

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

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