Перевод официальной документации Perl 6.

Отличия между Perl 5 и Perl 6 (встроенные функции)

| 0 Comments | 0 TrackBacks

Данный пост является вырезкой из документации Perl6::Perl5::Differences


Встроенные функции

Некоторые встроенные функции удалены. Дополнительно см. [S29]: Устаревшие функции

Ссылки в прошлом (или все типы данных являются ссылками)

В Perl 6 захват объектов заполнил экологическую нишу ссылок. Можно представить себе, что это "толстые" ссылки, то есть ссылки, которые могут захватывать не только текущую идентичность одного объекта, но так же относительные идентичности нескольких связанных объектов. С другой стороны, можно считать, что ссылки в Perl 5 являются частной формой захвата, когда создается ссылка только на один элемент.

  Было:  ref $foo eq 'HASH'
  Стало: $foo ~~ Hash

  Было:  @new = (ref $old eq 'ARRAY' ) ? @$old : ($old);
  Стало: @new = @$old;

  Было:  %h = ( k => \@a );
  Стало: %h = ( k => @a );

Передача аргумента по ссылке с последующей его модификацией:

  Было:  sub foo {...};        foo(\$bar)
  Стало: sub foo ($bar is rw); foo($bar)

В вышеприведенных примерах "устаревших" ссылок имеются некоторые нюансы. Подробнее о захватах можно узнать в документе [S02]: Имена и переменные , или на странице Perl6::FAQ::Capture.

say()

Это та же функция print с автоматическим добавлением символа новой строки:

    Было:     print "Hello, world!\n";
    Стало:    say   "Hello, world!";

Так как печать с символом завершения строки используется довольно часто, было решено сделать эту возможность на уровне языка.

wantarray()

Функции wantarray() в Perl 6 нет. Контекст подпрограммы определяется за её пределами, это значит, что подпрограмма "не знает", в каком контексте она выполняется.

Вместо этого нужно возвращать объекты, которые действуют в зависимости от своего контекста. Подробнее см. [S06]: Функция want 

No TrackBacks

TrackBack URL: http://blog.perl6doc.ru/mt-tb.cgi/40

Leave a comment

About this Entry

This page contains a single entry by Dinar published on November 15, 2010 12:02 AM.

Отличия между Perl 5 и Perl 6 ( Перегрузка ) was the previous entry in this blog.

Отличия между Perl 5 и Perl 6 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.