Создание серверных приложений на языке PERL

       

Операторы tr/// и y///



Операторы tr/// и y///

tr/таблица1/таблица2/cds;
y/таблица1/таблица2/cds;

Замена всех символов из "таблица1" на соответствующий символ из "таблица2". Результат - количество замен или стирании. Без оператора =~ или != операция выполняется со строкой $_. Для совместимости с программой sed вместо tr можно писать 'y'.

Опции:



c - дополнение "таблица1"
d - стереть найденные, но не замененные символы.
s - "сжать" повторяющиеся замененные символы.

Если указана опция /d таблица2 всегда интерпретируется как положено. Другими словами, если таблица2 короче, чем таблица1, то символ из таблицы1 интерпретируется всегда. Если таблица2 - null, то все символы строки остаются неизменными. Это удобно для подсчета количества символов в строке определенного класса или для сжатия повторяющихся символов, например, пробелов.

$s = "hello"; # Исходная строка $s =~ tr/a-z/A-Z/; # Заменить малые буквы на большие. Результат # 'HELLO' $s = 'Hel....lo'; $s =~ tr/a-zA-z/_/c; # Заменить все не буквы на '_' # Результат 'Hel____lo' $s =~ tr/_/ /s; # Заменить '_' на ' ' и сжать. # Результат 'Hel lo' $s =~ tr/a-zA-Z /a-zA-Z/d; # Удалить все не буквы. Результат 'Hel

* * * *

Попробуйте написать функцию, которая запрашивает выражение и число. Функция должна возвращать номера слов в выражении, длина которых превышает переданное число.

Дополнительная информация: [регулярные выражения]



Содержание раздела