Списки параметров переменной длины
В реальном коде Perl пользовательские функции часто получают списки параметров произвольной длины. Это обусловлено уже упоминавшейся философией «отсутствия искусственных ограничений», принятой в Perl. Конечно, в этом Perl отличается от многих традиционных языков программирования, требующих жесткой типизации каждой функции (т. е. возможности ее вызова только с заранее определенным числом параметров заранее определенных типов). Хорошо, конечно, что Perl настолько гибок, но, как было показано ранее в примере с функцией &max, вызов функции с другим количеством аргументов может создать проблемы. Конечно, функция может легко проверить количество аргументов по массиву @_. Например, в функции &max проверка может выглядеть так:
sub max {
if (@_ != 2) {
print "WARNING! &max should get exactly two arguments!\n";
}
# Нормальное продолжение...
.
.
.
}
Условие if использует «имя» массива в скалярном контексте для получения количества его элементов. Но в реальном программировании такие проверки встречаются относительно редко; лучше заставить функцию приспособиться к переданным параметрам.
Комментарии:
Нету комментариев для вывода...