Списки параметров переменной длины

В реальном коде Perl пользовательские функции часто получают списки параметров произвольной длины. Это обусловлено уже упоминавшейся философией «отсутствия искусственных ограничений», принятой в Perl. Конечно, в этом Perl отличается от многих традиционных языков программирования, требующих жесткой типизации каждой функции (т. е. возможности ее вызова только с заранее определенным числом параметров заранее определенных типов). Хорошо, конечно, что Perl настолько гибок, но, как было показано ранее в примере с функцией &max, вызов функции с другим количеством аргументов может создать проблемы. Конечно, функция может легко проверить количество аргументов по массиву @_. Например, в функции &max проверка может выглядеть так:

sub max {
if (@_ != 2) {
print "WARNING! &max should get exactly two arguments!\n";
}
# Нормальное продолжение...
.
.
.
}

Условие if использует «имя» массива в скалярном контексте для получения количества его элементов. Но в реальном программировании такие проверки встречаются относительно редко; лучше заставить функцию приспособиться к переданным параметрам.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Аргументы
Возвращаемые значения
Вызов пользовательской функции
Вызов функции без &
Директива use strict

Вернуться в раздел: Perl / 3. Пользовательские функции