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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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