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