|
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
|