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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Глава 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