Добро пожаловать на наш сайт!

Сайт посвящен компьютерам, софту, программированию и вообще информационным технологиям.

Надеямся Вам у нас понравится.

 
 

Меню сайта

 
Введение в Perl

Для отмены интерполяции используйте '
\Q'. Если вы применяете вложенные ограничители то внутренние ограничители работать не будут.

?PATERN?
?PATERN?
Действие этого оператора аналогично /шаблон/ но выполняется до первого совпадения. Это удобно для поиска наличия какой нибудь строки в одном или множестве файлов. Это не очень удачный оператор поэтому в следующих версиях Перл его возможно не будет.
m/PATERN/gimosx
/PATERN/gimosx
Поиск в строке по патерну (шаблону). В скалярном контексте возвращает логическое значение
true(1) или
false(''). Если строка не указана с помощью операторов '
=~' или '
!~' поиск ведется в строке
$_
Опции:
g  – Глобальный поиск. Поиск всех вхождений.
i  – Сравнение не зависит от регистра (верхний или нижний)
m – Строка многострочна.
o – однопроходная компиляция
s – однострочная строка
 x – используеются расширенные регулярные выражения.
Если '
/' – ограничитель то начальное '
m' можно опустить. С помощью него в качестве ограничителя может быть любой символ кроме пробела.
PATTERNможет содержать переменные которые будут интерполироваться (перекомпилироваться) каждый раз в момент вычисления.
Переменные
$)и
$|не интерполируются. Если вы хотите что бы такой шаблон интерполировался один раз – добавьте
/o.
Это необходимо делать в циклах поиска для увеличения быстродействия однако если вы измените значение переменной Перл этого даже не заметит.
Если
PATERN– нулевая строка то используется последнее регулярное выражение.
В скалярном контексте возвращается список элементы которого результаты выполнения выражений в скобках патерна ($1, $2, $3...).
Обратите внимание что первый елемент $1.
Пример:
$a = «/usr/local/perl/perl.bin»; # Анализируемая строка
Цель: Создать массив @dirs с именами директорий.
Решение:
Самый простой способ воспользоваться
split('\/'), но в качестве примера используем скобки.
@dirs =~ m[/(\w*)/(\w*)/(\w*)/(\w*)]
Здесь '
m[' – использовать квадратные скобки как ограничители.
(
\w*) – шаблон алфавитноцифровой последовательности.
В результате
@dirsравен ('usr', 'local', 'perl')


q/строка/ 'строка'
Строка литералов.

Hosted by uCoz