Введение в Perl
Добавить в закладки К обложке
- От простого к сложному - Страница 1
- Запуск интерпретатора Перл - Страница 4
- Синтаксис - Страница 6
- Переменные - Страница 10
- Встроенные переменные Перл - Страница 13
- Регулярные выражения (шаблоны) - Страница 15
- Операторы и приоритеты - Страница 17
- Встроенные функции - Страница 23
- Группа системных вызовов - Страница 27
- Подпрограммы - Страница 35
- Модули (packages) - Страница 37
- Форматы - Страница 39
- Отладка Перл программ - Страница 41
- Список литературы - Страница 42
- Интернет – ссылки - Страница 43
sub mygrep(&@) mygrep { /foo/ } $a, $b, $c
sub myrand($) myrand 42
sub mytime() mytime
Здесь:
\'символ' – параметр с типом 'символ'
или '%' – все оставшиеся параметры как список
'$' – скаляр
'&' – безимянная подпрограмма
'*' – ссылка на таблицу имен
';' – разграничитель обязательных и не обязательных параметтров.
Ссылка как параметр.Иногда нужно в качестве параметра передать подпрограмме не значение элемента массива а ссылку на него, что бы подпрограмма могла изменить значение элемента. Для этого в Перл к имени переменной добавляется символ '*' Подбное выражение называют 'type glob' так как в Юниксе символом '*' обозначают «все возможные значения». Поэтому '*' для массива означает «все элементы массива».
Для скаляров употряблять '*' не имеет смысла т.к. они и так передаются ссылкой и вы можете изменять значение параметра изменяя например переменную $_[0].
Переопределение встроенных функций.Большинство встроенных функций Перл можно переопределить своими собственными. Обычно это делают для удобства совместимости Перл для разных платформ систем.
Для этого нужно перечислить имена этих функций в виде:
use subs 'функция1', 'функция2' ....;
и далее в модуле определить сами функции.
Автозагрузка.Если вы попытаетесь вызвать не существующую функцию то Перл выдаст немедленно сообщение об ошибке. Но если вы определите подпрограмму с именем 'AUTOLOAD' то она будет вызвана с теми же параметрами а переменная $AUTOLOAD будет содержать имя не существующей подпрограммы. Данный механизм очень удобен для средств отладки.