|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Serg Chervjakov 2:5020/400 15 Jun 2003 00:22:57 To : All Subject : My и все с ним связанное --------------------------------------------------------------------------------
Hi All,
Более менее привык я описывать в функциях все переменные с помощью my, но
надоедает один факт. Пишу функцию:
sub pr
{
my ($vr1,$vr2)=@_; #это понятно.
if (1==1)
{
$vr1=12; #это тоже понятно - тут все просто. Hо тут мне захотелось
my $ifvr1=123; #но вот эта переменная будет видна лишь внутри блока if
}
}
Вот соб-сно и вопрос - как лучше всего сделать так, что бы $ifvr1 была видна
лишь внутри и за пределами блока if? А лишь внутри функции pr? (самый простой
вариант и я знаю - объявить ее там где надо и больше не переобъявлять).
Hу и вопрос дальше. Скажем пишу:
sub pr
{
my $vr1=12
if (1==1)
{
my $vr1=234; #эта переменная будет сохранять свое значение лишь до конца
#блока if.
}
# а тут $vr1 уже равно 12.
}
То есть видно, что я могу создавать локальные переменные даже внутри просто
блока (не целой функции). Вопрос - как мне изнутри блока if увидеть "наружное"
значение $vr1?
ЗЫ: Вопросы скорее всего - "дурацкие", и скорее всего то что я спрашиваю
невозможно впринципе. Hо тем не меннее они достаточно интересны. Первый -
позволит меньше углубляться в тонкости с объявлением переменных и не тратить
время на то, что бы подняться на 5 строк выше, что бы сделать описание. А
второй - позволил бы организовывать "весёленькие" вложенные циклы:).
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/16679110ce904.html, оценка из 5, голосов 10
|