П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180575 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 79023 раз(а).

Учебник HTML.
Просмотров 75802 раз(а).

Руководство по PHP5.
Просмотров 46818 раз(а).

Хостинг через призму DNS.
Просмотров 54298 раз(а).

Подборка текстов стандартных документов.
Просмотров 46675 раз(а).

Учебник PHP - Самоучитель
Просмотров 52878 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53490 раз(а).

Внешние атаки...
Просмотров 43245 раз(а).

Учебник PHP.
Просмотров 38774 раз(а).

SSI в примерах.
Просмотров 28687 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 8: Функции.
8.6 Полулокальные переменные, созданные при помощи функции local

В Perl существует еще один способ создания "частных" локальных переменных — с помощью функции local. Важно понять различия между my и local. Например:

$values = "original";
tellme();
spoof();
tellme();

sub spoof {
  local ($value) = "temporary";
  tellme();
}

sub tellme {
  print "Current value is $value\n";
}

На выходе получаем следующее:

Current value is original Current value is temporary Current value is original

Если бы вместо local мы использовали my, то локальный вариант переменной $value был бы доступен только в пределах подпрограммы spoof(). При использовании функции local, как видно по результатам программы, это локальное значение не совсем локальное; оно доступно и во всех остальных подпрограммах, вызываемых из spoof(). Общее правило таково: локальные переменные доступны для функций, вызываемых из того блока, в котором эти функции объявлены.

Операцию my можно использовать только для объявления простых скалярных переменных, переменных-массивов и хеш-переменных с буквенно-цифровыми именами, тогда как для переменной local такие ограничения не установлены. Кроме того, встроенные переменные Perl, такие как $_,

#1 и @argv, с помощью my объявлять нельзя, а вот с local они работают прекрасно. Поскольку $_ используется в большинстве Perl-программ, то будет, вероятно, разумным помещать строку

local $_;

в начало любой подпрограммы, которая использует $_ для собственных нужд. Это гарантирует сохранность предыдущего значения и его автоматическое восстановление при выходе из подпрограммы.

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

В большинстве случаев рекомендуем использовать не local, a my, потому что эта операция действует быстрее и надежнее.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru