Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Владимир Маслов - Введение в Perl
<<-[Весь Текст]
Страница: из 56
 <<-
 
отипы);  То же но с декларацией параметров.

	sub имя блок;	# Декларация и определение.

	sub имя (прототипы) блок; # То же, но с парамметрами.

Для определения динамичской анонимной подпрограммы можно указать:

	$переменная = sub блок;

Для импортирования подпрограмм из других модулей используйте:

	use модуль qw(подпрограмма1 подпрограмма2 );

Вызов подпрограммы:

	имя(список параметров);	# символ '&' можно не указывать.

	имя список;	# Если подпрогрмма уже декларирована.

	&имя;		# Параметры в @_

Все параметры передаются подпрограмме как массив @_.
Соответсвенно $_[0] - первый параметр, $_[1] - второй и т.д.
Массив @_ - локальный, но он содержит адреса параметров поэтому
можно изменять значение параметров.
Возвращаемое значение подпрограммы - результат последнего оператора.
Это может быть как скаляр так и массив. Можно принудительно возвращать
результат используя функцию return().

Подпрограмму можно вызвать используя префикс '&' перед именем
подпрограммы. Если подпрограмма предварительно продекларирована то
префикс и скобки можно опустить.

Private переменные.


Для применения переменных доступных только внутри блока или подпрограммы
необходимо определить их с помощью функции my(список).

Если переменная одна то скобки можно опустить.

my() декларирует private переменные в пределах текущей подпрограммы,
блока, функции eval() или do/require/use файлов. Private переменные
аналогичны auto переменным в С.

Пример:

	# Программа вычисления факториала.

	print fact(3);  # вычислить факториал 3*2*1

	sub fact	# Определяем подпрограмму.
	{ my $m;                # private переменная но не local !
	$m = $_[0];
	return 1 if $m <= 1;
	return($m * fact($m -1));
	}

Можно указывать начальные значения private переменных как:

	my(список) = выражение;

Так для вышеприведенного примера лучше было написать:

	my($m) = $_[0];


Переменные типа local.

В общем лучше использовать private переменные так-как это надежней и
быстрее. private переменные обеспечивают лексическую область применения
(видимости) а local - динамическую. Обычно это переменные форматов
значение которых должно быть видимо из вызываемых подпрограмм.
Примен
 
<<-[Весь Текст]
Страница: из 56
 <<-