![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
REZiaMIX |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Если объявляю массив вот так:
тогда print @testArray выдает правильный результат если делаю вот так:
тогда print выдает только последний элемент element3. как сделать правильно? -------------------- ![]() |
||||
|
|||||
reiserford |
|
|||
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 22 Регистрация: 20.3.2012 Репутация: 1 Всего: 1 |
- our @testArray = []; # или our @testArray = undef;
+ our @testArray; Что вы хотели сказать вот этим? $self{@testArray} = ("element1","element2","element3"); |
|||
|
||||
DurRandir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
1. Где у вас тут print?
2. Что творится в родительском классе? 3. our @testArray = [] - вы в массив записали один элемент - ссылку на пустой анонимный массив. 4. $self{@testArray} - это вообще-то срез хэша. Причём где этот хэш определили - непонятно (п.2), что распечатывали - непонятно (п.1) Когда приводите пример кода - должна быть возможность его запустить и увидеть то же, что и вы. |
|||
|
||||
REZiaMIX |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
этим пытался присвоить @testArray, как члену класса новое значение - массив ("element1","element2","element3"); П.С. я пишу на плюсах , в перле новичек ![]() Добавлено через 1 минуту и 54 секунды тогда вопрос другой , объявили мы массив в классе:
как получить к нему доступ из саба , и присвоить новые значения? -------------------- ![]() |
||||
|
|||||
DurRandir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
our @testArray - это просто переменная уровня пакета - в обычных терминах это "статический член класса". Почитайте perltoot/perlobj для просветления)
|
|||
|
||||
REZiaMIX |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
я понимаю, что это переменная уровня пакета(или стат. член класса), так вопрос не в том, вопрос в том , как правильно к ней обратиться из саба и установить новое значение, в моем случае - новый массив. Если к обычным переменным я обращаюсь через
то с массивом так не выходит Это сообщение отредактировал(а) REZiaMIX - 18.5.2012, 13:48 -------------------- ![]() |
||||
|
|||||
REZiaMIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Вопрос решен, делаю так:
-------------------- ![]() |
|||
|
||||
vadiml |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: 5 Всего: 7 |
А зачем это нужно было? our @testArray и @{$self->{'testArray'}} -- это разные, ни как не связанные массивы. Ладно если б Вы сделали $self->{'testArray'} = \@testArray, то имели бы 2 способа обращения к массиву: @TestPackage::testArray и @{$self->{'testArray'}} Хотя смысла в этом нет если Вы не хотите иметь static данные к своём классе. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |