
- •Язык программирования perl
- •Perl как язык программирования
- •История perl
- •Perl - интерпретируемый язык программирования
- •Богатство возможностей языка perl
- •Использование perl
- •Использование perl как фильтра данных
- •Использование языка perl как шлюза безопасности
- •Frontend-программы для связи с базой данных
- •Использование языка perl для написания cgicкриптов.
- •Знакомство с языком perl
- •Установка perl
- •Использование отладчика perl
- •Типы данных в perl
- •Переменные
- •Скалярные переменные
- •Массивы
- •Роль контекста аля переменных скалярного и векторного типа
- •Ассоциативные массивы
- •Операторы perl
- •Арифметические операторы
- •Побитовые операторы
- •Операторы сравнения
- •Логические операторы
- •Строковые операторы
- •Операторы присваивания
- •Операции для работы со списками
- •Операторы для работы с файлами
- •Приоритеты выполнения операторов
- •Конструкции языка perl
- •Простые и составные операторы
- •Условные операторы
- •Оператор unless
- •Оператор do
- •Циклы и ветвления
- •Цикл until
- •Циклы for и foreach
- •Оператор безусловного перехода goto
- •Модификаторы операторов
- •Генерация динамических выражений с помощью функции eval
- •Подпрограммы
- •Библиотека подпрограмм
- •Использование пакетов для изоляции подпрограмм
- •Обработка строк
- •Функция chop
- •Функция index
- •Функция length
- •Функция substr
- •Функция join
- •Функция split
- •Функции для обработки списков
- •Функция reverse
- •Функция sort
- •Функции работы с массивами
- •Функции push и pop
- •Функция shift
- •Функция unshift
- •Функция splice
- •Функция scalar
- •Функция grep
- •Функции обработки ассоциативных массивов
- •Функция keys
- •Функция values
- •Функция each
- •Функция delete
- •Аргументы командной строки
- •Доступ к переменным окружения
- •Файловый ввод и вывод
- •Открытие файлов и других потоков
- •Построчное чтение и запись данных
- •Чтение и запись блоков данных
- •Обработка бинарных данных
- •Хранение бинарных данных
- •Распаковка строк бинарных данных в переменные языка perl
- •Упаковка данных в бинарные строки
- •Работа с каталогами
- •Открытие, чтение и закрытие каталогов
- •Форматированный вывод
- •Использование функции print
- •Форматированный вывод данных функцией printf
- •Вызов внешних программ из скрипта на языке perl
- •Регулярные выражения
- •Обзор регулярных выражений
- •Синтаксис регулярных выражений
- •Использование регулярных выражений для поиска по ключевымсловам
- •Использование регулярных выражений для анализа входных данных
- •Регулярные выражения для поиска и замены строк
- •Создание скриптов cgi с помощью perl
- •Вызов cgi-скрипта
- •Вызов сgi-скрипта в системе unix
- •Вызов скрипта на языке perl из dos и windows
- •Создание текста и html-документа с использованием языка perl
- •Добавление в документ динамических свойств
- •Доступ к строке запросов
- •Декодирование html-форм с помощью метода post
Функция index
Функция index осуществляет поиск заданной подстроки в строке. Она имеет следующий формат:
$location = index(Str, SubStr[, Offset]);
Функция index возвращает индекс первого вхождения подстроки(SubStr) в строку (Str). Факультативно может быть задан сдвиг отначала (Offset), после которого начинается поиск. Если подстрокане найдена, возвращается значение -1. В следующем примере функция index ищет вхождения подстроки 'па' после третьего символа встроке 'banana':
print index('banana','na',3); # Выведет 4.
ФУНКЦИЯ RINDEX
Функция rindex ищет последнее, самое правое вхождение подстроки в строку и возвращает значение позиции первого символа подстроки. Функция имеет следующий формат:
$location = rindex(Str, SubStr);
Эта функция аналогична функции index, за исключением того,что она возвращает последнее вхождение, а не первое. Например, вследующем примере функция rindex используется для определенияпоследнего вхождения подстроки 'na' в строку 'banana':
print rindex('banana','na'); # Выведет 4
Функция length
Функция length возвращает число символов в строке. Она имеетследующий формат:
$len = length(Str);
В следующем примере функция length используется для выводачисла символов в строке:
print length('banana'); # Выведет 6
Функция substr
Функция substr используется для удаления части строки. Онаимеет следующий формат:
$substring = substr(Str, Offset[,Len]);
Функция возвращает подстроку, т. е. часть строки, длина которой не превышает величины, заданной факультативным параметромLen. Возвращаемая подстрока строки str начинается с символа в позиции, заданной сдвигом Offset. Если параметр Len опущен, то возвращаемая строка содержит символы до конца строки включительно.Если параметр Offset отрицательный, то сдвиг вычисляется от конца строки. Наконец, скрипт может использовать substr как lvalueдля выполнения операции присваивания. Следующий фрагмент кода иллюстрирует использование функции substr.
print substr('orange',3); #Выведет 'nge'
print substr('orange',-2); # Выведет 'ge'
print substr('orange',2,2); # Выведет 'an'
$str = 'apple';
substr($str,-3) = 'ricot';
print $str; # Выведет 'apricot'
Примечание: Часто использование операторов языка Perl для регулярных выражений оказывается более эффективным, чем функцииsubstr. Регулярные выражения обсуждаются ниже в данной главе.
Функция join
Функция join соединяет список элементов в строку, разделяякаждый элемент заданным символом. Она имеет следующий формат:
$new_string = join(Str,List);
Функция join конвертирует каждый элемент списка в строку исоединяет строки. Следующий фрагмент кода иллюстрирует использование функции join:
$str = join(',', 0..4,10,20); # Список будет '0,1,2,3,4,10,20'
$strn = join ("\t", $a, $b, $c);# Смешает списки
Функция split
Функция split разделяет содержимое строки на список элементов. Она имеет следующий формат:
split(Delimeter, Str[,Limit]);
Аргумент Delimeter определяет символ, по которому осуществляется разделение, например, пробел, слово, символ табуляции ит. д. Факультативный параметр Limit задает максимальное числоэлементов, которое может содержать список. Следующий пример иллюстрирует использование функции split.