![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
zorch |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 19.3.2006 Репутация: нет Всего: нет |
Есть большая прога, описывать ее здесь смысла нет, но суть в том что глабальная переменная изменяется в функции. Как это сделать?
Для упрощения ввывожу простой кусок кода. $a=0; &test; &test1; sub test { $a=1;} sub test1{ print $a; } Выводится соответсвенно 0. А нужно чтобы выводилась 1, т.е. sub test должен ИЗМЕНЯТЬ переменную $a. Если кто знает как это сделать. подскажите. Это сообщение отредактировал(а) zorch - 19.3.2006, 12:42 |
|||
|
||||
BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
Вы привели неправильный пример, если Вы его запустите, то получите не 0 как пишите, а 1 ...
Это сообщение отредактировал(а) BlackLFL - 19.3.2006, 12:58 |
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
zorch, используй свзяку our + local, our в основной программе, local в функциях.
Подробно смотри perldoc -f our и perldoc -f local. ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
Phoinix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 16.11.2004 Где: Moskau Репутация: нет Всего: 2 |
BlackLFL,
sharq, Мудрецы однако... zorch,
P.S. use vars ...; - как раз для глобальных переменных Это сообщение отредактировал(а) Phoinix - 23.3.2006, 12:52 |
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Phoinix,
ты видел исходный код vars.pm? и что лучше our+local или один экран кода vars? ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
Phoinix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 16.11.2004 Где: Moskau Репутация: нет Всего: 2 |
sharq,
Лучше vars.pm, чем гемморой с областями видимости... При том, если мне нужна глобальная(!) переменная, это значит, что мой код будет не на 10 строк... и эта переменная мне нужна не в одной процедуре, иначе мне её проще просто передать по ссылке... |
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Phoinix, в принципе ты прав!
Просто и так, и так можно, твой вариант короче. Это из области - при наследовании писать use base '...';, а не use ...; push @ISA, '...';. Хотя и так, и так можно, просто первый вариант короче! ![]() ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
Kiber_rat |
|
||||
![]() MACMANIAC ![]() ![]() Профиль Группа: Участник Сообщений: 276 Регистрация: 18.4.2002 Где: Ashdod, Israel Репутация: 7 Всего: 9 |
-------------------- Best regards! @..@_____Ku6ep =*=______\______KPbIC
|
||||
|
|||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Kiber_rat, а зачем писать слово main?
Можно так:
![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |