Автор Тема: модули и видимость переменной  (Прочитано 4074 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
модули и видимость переменной
« : 04 Января 2007, 18:26:40 »
такая ситуация...имеется

модуль

package Module;

sub aaa {

my $var = "";

print $var;

}

и собственно файл

куда подключается модуль

можно ли изменить значение переменной если она задана как локальная...да и вообще как менять значение переменных в модуле...у меня получается так...

допустим $Module::var = "123";, но тогда эта переменная как бы глобальной для всего модуля становится...а чтобы именно изменить в подпрограмме модуля...такое возможно?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
модули и видимость переменной
« Ответ #1 : 04 Января 2007, 21:05:17 »
нет. а зачем?

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
модули и видимость переменной
« Ответ #2 : 04 Января 2007, 21:06:36 »
напрямую обратиться к локальной переменной нельзя.
в том то и разница между локальными и глобальными переменными
0 OK, 0:1

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
модули и видимость переменной
« Ответ #3 : 06 Января 2007, 07:39:00 »
понятно...ну а если она не локальная...как её поменять в подпрограмме?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
модули и видимость переменной
« Ответ #4 : 06 Января 2007, 18:29:52 »
обратиться к ней по полному имени

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
модули и видимость переменной
« Ответ #5 : 07 Января 2007, 03:27:40 »
так $Module::var = "123";

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28