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
Можно указывать начальные значения private переменных как:
- my(список) = выражение;
Так для вышеприведенного примера лучше было написать:
- my($m) = $_[0];