Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Как сделать локальный псевдоним переменной?


Автор: Logo 20.10.2009, 18:15
Глобальный знаю как, *a = \$b а как сделать локальный, с лексической областью видимости?

Автор: sir_nuf_nuf 20.10.2009, 18:33
our $x; - объявляет глобальную перменную с именем x в текущем пакете, но имя x будет обладать лексической видимостью.

Автор: Logo 20.10.2009, 18:51
Видимо не очень понятно обьяснил. Можно создать псевдоним переменой способом указанным выше, но он будет глобальным.
Цитата

$b = 'qwe';
*a = \$b;
print $a; #выведет qwe, a теперь псевдоним для $b

Но этот псевдоним глобальный. Локальные псевдонимы создаются неявно
Цитата

$b = 'qwe';
for my $a($b) {print $a; #выведет qwe, a теперь псевдоним для $b}
print $a; #предупреждение т.к. $a больше не соответствует $b.

а также в @_, given и д.р.
Но как создать локальный псевдоним напрямую я пока не нашел.

Автор: KSURi 20.10.2009, 19:47
use Alias;

Автор: Logo 20.10.2009, 21:47
Спасибо, как раз. Правда этих Alias модулей я насчитал не меньше 8 штукsmile

Автор: ginnie 21.10.2009, 11:03
Logo, я бы попробовал использовать Lexical::Alias.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)