|
Добро пожаловать на наш сайт! |
Сайт посвящен компьютерам, софту, программированию и вообще информационным технологиям.
Надеямся Вам у нас понравится. |
|
|
|
|
|
|
|
|
|
|
Введение в Perl |
Для этого в Перл к имени переменной добавляется символ '
*' Подбное выражение называют
'type glob'так как в Юниксе символом
'*'обозначают «все возможные значения». Поэтому
'*'для массива означает «все элементы массива». Для скаляров употряблять
'*'не имеет смысла т.к. они и так передаются ссылкой и вы можете изменять значение параметра изменяя например переменную
$_[0].
Переопределение встроенных функций. Большинство встроенных функций Перл можно переопределить своими собственными. Обычно это делают для удобства совместимости Перл для разных платформ систем. Для этого нужно перечислить имена этих функций в виде: use subs 'функция1', 'функция2' ....; и далее в модуле определить сами функции.
Автозагрузка. Если вы попытаетесь вызвать не существующую функцию то Перл выдаст немедленно сообщение об ошибке. Но если вы определите подпрограмму с именем
'AUTOLOAD'то она будет вызвана с теми же параметрами а переменная
$AUTOLOADбудет содержать имя не существующей подпрограммы. Данный механизм очень удобен для средств отладки.
*Модули (packages)*
В Перл реализован механизм модулей. Модуль это группа подпрограмм и переменных обычно включенных в один файл. Внутри одного модуля можно определить другой модуль. Начало модуля определяется директивой: packages имя_модуля; Конец модуля это конец блока или файла. Головной модуль имеет по умолчанию имя
main. На имя внутри модуля можно ссылаться добавляя '
::' после имени модуля. Например: $main::var1– переменная в головном модуле. ::var1 – то же самое. Имя main можно опускать. $модуль1::var1 – переменная в модуле
'модуль1' $модуль1::модуль2::var1–
Модуль2содержится в модуле 1. Только идентификаторы начинающиеся с буквы или символа '
_' хранятся в пространтсве имен текущего модуля. Остальные хранятся в пространстве головного модуля
main. Кроме этого имена
STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INCи
SIGтак же хранятся в головном модуле.
Таблицы имен. Все имена модуля хранятся в ассоциативном массиве (хеше) с именем модуля к которому добавлены символы "
::".
|
|
|