Подпрограммы и функции
Определение подпрограммы
Подпрограммы в языке Perl играют ту же роль, что и функции в языке С, или процедуры и функции в языке Pascal. Они выполняют две основные задачи: | позволяют разбить одну (большую программу на несколько небольших частей, делая ее более ясной для понимания;Вызов подпрограммы
Мы знаем, что принадлежность к тому или иному типу определяется префиксом имени: | $х – скалярная переменная, | @х – массив, | %х – ассоциативный массив. | Префиксом функции является символ "&". К любой подпрограмме можно обратиться, указав ее имя с префиксом &: | Sname args; Sname(args); Sname;Локальные переменные в подпрограммах
Областью видимости или областью действия переменной мы будем называть часть программы, где данная переменная может быть использована. В языке Perl, как мы знаем, нет обязательного явного описания переменных. Точкой определения переменной является место, где она впервые встречается в программе.Передача параметров
Информация в подпрограмму и обратно передается через параметры (аргументы). Для передачи параметров в подпрограмму используется специальный массив @_. Все параметры запоминаются в элементах массива $_ [ 0 ], $_ [ 1 ] и т. д.В каких случаях функцию local нельзя заменить функцией mу
В следующих случаях функция local () является незаменимой. П Присваивание временного значения глобальной переменной. В первую очередь это относится к некоторым предопределенным глобальным переменным, таким как $ARGV, $_ и т. д. Рассмотрим пример. | #!/usr/bin/perl $/ = under"; @ARGV = ("а"); $_ = <>;Прототипы
Встроенные функции Perl имеют определенный синтаксис: имя, число и тип параметров. Прототипы позволяют накладывать ограничения на синтаксис функции, объявляемой пользователем. Прототип представляет собой запись, которая состоит из заключенного в скобки списка символов, определяющих количество и тип параметров подпрограммы.Рекурсивные подпрограммы
Язык Perl допускает, чтобы подпрограмма вызывала саму себя. Такая подпрограмма называется рекурсивной. При написании рекурсивных подпрограмм следует иметь в виду, что все переменные, значения которых изменяются внутри подпрограммы, должны быть локальными, т. е.Вопросы и Упражнения
Вопросы для самоконтроля | Какие формы обращения к подпрограмме вы знаете? | Что такое область видимости переменной? | Как ограничить область видимости переменной? | Чем отличаются переменные, объявленные при помощи функции ту о от переменных, объявленных при помощи функции local ()?