perl5100delta (3)

Частичный перевод документа perl5100delta.

readdir() в системе Windows

Функция readdir() может возвращать "короткое имя" когда полное имя содержит символы, не принадлежащие кодовой таблице ANSI (ANSI codepage). Аналогично Cwd::cwd() может возвращать короткое имя директории, а glob() может возвращать короткие имена файлов и директорий. В файловой системе NTFS эти короткие имена всегда могут быть представлены в кодовой таблице ANSI. Это не будет верно для всех остальных драйверов файловых систем (file system drivers); например файловая система FAT хранит короткие имена в кодовой таблице OEM, так некоторые файлы на томах FAT остаются недоступными через ANSI API.

Кроме того, $^X, @INC, и $ENV{PATH} обрабатываются препроцессором при запуске, чтобы проверить все пути на валидность в кодовой таблице ANSI (если это возможно)

Функция Win32::GetLongPathName() теперь возвращает UTF-8 закодированное корректное имя файла вместо использования замены символов для того, чтобы подогнать имя к кодовой таблице ANSI. Новая функция Win32::GetLongPathName() может быть использована для преобразования полного имени файла в короткое, только если полное имя не пожет быть представлено в кодовой таблице ANSI.

Многие другие функции в модуле Win32 были усовершенствованы для обработки UTF-8 закодированных аргументов. Более подробно об этом в Win32.

Переопределение readpipe()

Встроенная функция readpipe() теперь может быть переопределена. Это позволяет переопределить ее аналог - оператор qx// (также известный, как оператор `` ). Кроме того, теперь по умолчанию исползуется $_ , если не предоставлено никаких аргументов.(Rafael Garcia-Suarez)

Аргумент по умолчанию для readline()

Теперь readline() по умолчанию использует *ARGV если ему не перадано аргументов. (Rafael Garcia-Suarez)

Переменные класса 'state'

Введен новый класс переменных. Переменные состояния (state variables) подобны лексическим переменным, но декларированные ключевым словом state вместо my. Они видны только в своей лексической области, но их значения стойкие: в отличие от лексических переменных, они не становятся неопределенными при выходе из их области видимости, но сохраняют свое прежнее значение. (Rafael Garcia-Suarez, Nicholas Clark)

Для использования 'state' переменных, нужно предварительно объявить:

    use feature 'state';

или используя ключ командной строки -E .

Операторы тестирования стека

В качестве новой формы синтаксического сахара теперь доступны операторы тестирования стека. Вы можете теперь писать f -w -x $file в ряд, что тоже самое -x $file && -w _ && -f _ . Подробнее в "-X" in perlfunc

Statistic

About this Entry

This page contains a single entry by Dinar published on March 9, 2010 2:32 AM.

perl5100delta - прагма 'mro' was the previous entry in this blog.

perl5100delta(4) - DOES(), pack, unpack, разное is the next entry in this blog.

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