Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Владимир Маслов - Введение в Perl
<<-[Весь Текст]
Страница: из 56
 <<-
 
аналогично /шаблон/ но выполняется
до первого совпадения. Это удобно для поиска наличия какой
нибудь строки в одном или множестве файлов. Это не очень
удачный оператор поэтому в следующих версиях Пел его
возможно не будет.

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/строка/

'строка'
	Строка литералов. Не интерполируется. Внутри строки разрешается использовать
\' или \\ для обозначения символов ' и \ .

Пример:
	print q#Привет.#;	# Результат Привет.

	print 'O\'K';		# O'K

qq/строка/
"строка"
	Интерполируемая строка.

Пример:
	$var = 13;
	print "\$var = $var";

Результат:
	$var = 13

qx/строка/

`строка`
	Сначало строка интерполируется а потом выполняется как
	системная команда.

Пример:
	print `date`;

Результат:
	Thu Nov 14 13:36:49 MSK 1996

qw/строка/

	Возвращает список элементы которого - слова строки разделенные
	пробелами.

Пример:
	print qw/Построемся и спасемся!/; # ('Построемся','и','спасемся!')

Результат:
	Построемсяиспасемся!

Часто применяется как:
	use POSIX qw( setlocale localeconv )
	@EXPORT = 
 
<<-[Весь Текст]
Страница: из 56
 <<-