| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > изменение глобальной переменной из функции |
| Автор: zorch 19.3.2006, 12:04 |
| Есть большая прога, описывать ее здесь смысла нет, но суть в том что глабальная переменная изменяется в функции. Как это сделать? Для упрощения ввывожу простой кусок кода. $a=0; &test; &test1; sub test { $a=1;} sub test1{ print $a; } Выводится соответсвенно 0. А нужно чтобы выводилась 1, т.е. sub test должен ИЗМЕНЯТЬ переменную $a. Если кто знает как это сделать. подскажите. |
| Автор: BlackLFL 19.3.2006, 12:50 | ||
Вы привели неправильный пример, если Вы его запустите, то получите не 0 как пишите, а 1 ...
|
| Автор: sharq 20.3.2006, 16:43 |
| zorch, используй свзяку our + local, our в основной программе, local в функциях. Подробно смотри perldoc -f our и perldoc -f local. |
| Автор: Phoinix 23.3.2006, 12:51 | ||
| BlackLFL, sharq, Мудрецы однако... zorch,
P.S. use vars ...; - как раз для глобальных переменных |
| Автор: sharq 23.3.2006, 15:19 |
| Phoinix, ты видел исходный код vars.pm? и что лучше our+local или один экран кода vars? |
| Автор: sharq 25.3.2006, 16:10 |
| Phoinix, в принципе ты прав! Просто и так, и так можно, твой вариант короче. Это из области - при наследовании писать use base '...';, а не use ...; push @ISA, '...';. Хотя и так, и так можно, просто первый вариант короче! |
| Автор: Kiber_rat 25.3.2006, 21:32 | ||
|
| Автор: sharq 26.3.2006, 15:04 | ||
| Kiber_rat, а зачем писать слово main? Можно так:
|