Под Windows это делается так:
Под Windows это делается так:
use locale;
use POSIX qw (locale_h);
setlocale(LC_CTYPE, "Russian_Russia.1251"); # или "Russian_Russia.866"
С трансляцией АКА tr/XX/xx/ даже не используя use locale; можно так сделать: tr/\xB3\xE0-\xFF/\xA3\xC0-\xDF/;# для KOI8-r или tr/\xA8\xC0-\xDF/\xB8\xE0-\xFF/;# для Windows-1251 или tr/\xF0\x80-\x9F/\xF1\xA0-\xAF\xE0-\xEF/;# для CP-866
Q: Кто-нибудьможет мне по-русски рассказать о операорах: ?:, ?!, ?= и т.д.
и когда они используются?
A:
(?attern) - это почти (pattern). В норме круглые скобки выполняют
одновременно две функции - группируют то, что у них внутри, чтобы можно было
использовать повторители (*,?, +), и сохраняют то, что там получилось, в
переменных $1, $2,.. (?attern) выполняет только первую функцию, не
трогая, таким образом, значения переменных $1, $2,... Что несколько ускоряет
работу (пропорционально количеству откатов, проходящихчерез границу
выбранной группы) и уменьшает количество переменных. (?=pattern) -заглядвперед. Отличается от просто pattern тем, что после
успешного нахождения соответствияпозиция в строке будет не после
соответствующего куска, а перед ним. (?!pattern) - отрицательный загляд вперед. Отличается от предыдущего тем, что
pattern найтись HЕ должен. Вторыеоба наиболее осмысленны, когда привязаны к чему-нибудь (^, \G, просто
предшествующему шаблону). Hо в некоторых ситуациях осмысленны и сами по себе. В perl 5.005появились различные нововведения, о которых подробнее можно
узнать в документации:?<=, ?<!, ?{code}, ?>,
?(condition)yes-pattern|no-pattern
Содержание Назад Вперед