Иллюстрированный самоучитель по Perl
Глава 1
Прототипы
Встроенные функции Perl имеют
определенный синтаксис: имя, число и тип параметров. Прототипы позволяют накладывать
ограничения на синтаксис функции, объявляемой пользователем. Прототип представляет
собой запись, которая состоит из заключенного в скобки списка символов, определяющих
количество и тип параметров подпрограммы. Например, объявление
sub func ($$) {
1
определяет функцию func о с двумя
скалярными аргументами. Символы
для обозначения типа аргумента
приведены в табл. 11.1.
Таблица 11.1.
Символы, используемые
в прототипах для задания типа аргумента
Запись вида \char, где char —
один из символов табл. 11.1, обозначает что при вызове подпрограммы имя фактического
параметра должно обязательно начинаться с символа char. В этом случае в подпрограмму
через массив параметров @_ передается ссылка на фактический параметр,
указанный при ее вызове. Обязательные параметры в прототипе отделяются от необязательных
точкой с запятой.
В табл. 11.2 в качестве примера
приведены объявления пользовательских функции nybud,itin(), синтаксис
которых соответствует синтаксису встроенных функций buil tin ().
Таблица 11.2.
Примеры прототипов
|
|
|
|
|
|
|
myindex Sgetstring,
"substr"
|
|
mysyswrite $buf,
0, length ($buf) - $off, vOf f
|
|
|
|
|
|
|
|
mysplice Sarray,
@array, 0, @pushme
|
|
|
|
|
|
|
|
mygrep { /pattern/
} $a, $b, $c
|
|
|
|
|
Следует иметь в виду, что проверка
синтаксиса, задаваемого при помощи прототипа, не осуществляется, если подпрограмма
вызвана с использованием префикса &: ssubname.