Вход/Регистрация
Введение в Perl
вернуться

Маслов Владимир Викторович

Шрифт:

В скалярном контексте возвращается список элементы которого результаты выполнения выражений в скобках патерна ($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 = qw( proc1 var );

s/шаблон/подстрока/egimosx

Поиск по шаблону и в случае успеха замена подстрокой.

Возвращает количество произведенных подстановок иначе false (0). Если строка в которой ведестя поиск не указана (операторы =~ или != ) то используется переменная $_ .

Если в качестве раделителя '/' исрользовать одинарную кавычку (') то интерполяции не будет иначе можно применять переменные в шаблоне или подстроке.

Опции:

e – Расмматривать правую часть как выражение.

g  – Глобальный поиск.

i  – Без различия регистра букв

m – многосточная переменная

o – компилировать шаблон один раз

s – однострочная переменная

x – расширенное регулярное выражение

Разделитель '/' можно заменить на любой алфавитно-цифровой символ кроме пробела.

Пример:

$var = «12345»; # исходная строка

$var =~ s/1/0/; # Заменить '1' на '0'. Результат 02345

$var =~ s(5)(.); # Заменить '5' на '.' Результат 0234.

Здесь в качестве разделителя применены скобки поэтому подстрока

взята в две скобки.

$var =~ s/\d*/каламбур/; Заменить все цифры. Результат 'каламбур.'

$var =~ s/а/о/g; # Заменить все 'а' на 'о'. Результат 'коломбур.'

$var = «12 34»; # Новое значение

$var =~ s/(\d\d) (\d\d)/$2 $1/; # Поменять местами числа. Результат '34 12'.

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

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

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

  • Читать дальше
  • 1
  • ...
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: