Perl 5.16

Вечером 20 мая, спустя год после публикации версии 5.14, состоялся релиз Perl версии 5.16.
Из изменений можно отметить следующие:

  • Поддерживаемая версия unicode обновлена до 6.1.
  • use VERSION теперь переводит интерпретатор в режим указанной версии. Например, указав use v5.14 в версии 5.16 мы получим поведение perl 5.14, а все features из других версий будут отключены.
  • Новое ключевое слово __SUB__, с помощью которого можно получить ссылку на текущую подпрограмму в области видимости самой подпрограммы. Теперь написание однострочников стало еще проще:
    # вычислим факториал 10 в одну строку
    my $fact = sub { $_[0]>0 ? $_[0] * __SUB__->($_[0]-1) : 1 }->(10)
    
  • Новая функция fc, производящая unicode casefolding над переданной строкой. Если ранее для сравнения не ASCII строк в разном регистре вы применяли lc() или uc(), то вы делали это неверно. Например слово «Reichwaldstraße» в верхнем регистре записывается, как REICHWALDSTRASSE. Что после перевода в нижний регистр обоих вариантов приведет к сравнению «reichwaldstraße» и «reichwaldstrasse». В итоге сравнение закончится неудачей. Именно эту проблему решает функция fc().

Метки: ,

©  Linux.org.ru