Perl. Библиотека программиста

Подпрограммы

Доступ к аргументам подпрограммы

В своей функции вы хотите использовать аргументы, переданные вызывающей стороной.

Создание закрытых переменных в функциях

В подпрограмме потребовалось создать временную переменную. Использование глобальных переменных нежелательно, поскольку другие подпрограммы могут получить к ним доступ.

Создание устойчивых закрытых переменных

Вы хотите, чтобы переменная сохраняла значение между вызовами подпрограммы, но не была доступна за ее пределами. Например, функция может запоминать, сколько раз она была вызвана.

Передача массивов и хэшей по ссылке

Требуется передать функции несколько массивов или хэшей и сохранить их как отдельные сущности. Например, вы хотите выделить в подпрограмму алгоритм поиска элементов одного массива, отсутствующих в другом массиве. При вызове подпрограмма должна получать два массива, которые не должны смешиваться.

Определение контекста вызова

Требуется узнать, была ли ваша функция вызвана в скалярном или списковом контексте. Это позволяет решать разные задачи в разных контекстах, как это делается в большинстве встроенных функций Perl.

Передача именованных параметров

Требуется упростить вызов функции с несколькими параметрами, чтобы программист помнил смысл параметров, а не порядок их следования.

Пропуск некоторых возвращаемых значений

Имеется функция, которая возвращает много значений, однако вас интересуют лишь некоторые из них. Классический пример — функция stat; как правило, требуется лишь одно значение из длинного возвращаемого списка (например, режим доступа).

Возврат нескольких массивов или хэшей

Необходимо, чтобы функция возвратила несколько массивов или хэшей, однако возвращаемые значения сглаживаются в один длинный список скалярных величин.

Возвращение признака неудачного вызова

Функция должна возвращать значение, свидетельствующее о неудачной попытке вызова.

Сохранение глобальных значений

Требуется временно сохранить значение глобальной переменной.




Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: