![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Suppir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
Привет!
Есть хеш хешей, который я создаю следующим образом: $hash{$key}{id} = $id; $hash{$key}{name} = $name; $hash{$key}{code} = $code; Необходимо в хеш добавить $hash{$key}{date}, который должен содержать массив дат (обычно 3-4 шутки для каждого $id). Дата представляет собой простую строку, вроде "01/01/2010" 1) Как добавить в $hash{$key}{date} массив дат 2) Как потом обратиться к этому массиву (сделать перебор и вывести все элементы массива) Заранее спасибо ответившим! |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
1. $hash{$key}{date} = [ qw( 01/01/2010 02/02/2010 ) ];
2. print join "\n",@{ $hash{$key}{date} } |
|||
|
||||
| Suppir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
arto, а можно как-то по отдельности добавлять? Нужно что-то вроде Push(), потому что мне не известны все даты сразу.
|
|||
|
||||
| ming |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 30.1.2009 Где: Новосибирск Репутация: 2 Всего: 3 |
Suppir, да можно, конечно.
перед добавлением первой даты инициализируешь пустой анонимный массив - $hash{$key}{date} = []; а затем просто добавляешь в него элементы как в обычный массив - push @{ $hash{$key}{date} }, "01/01/2010"; push @{ $hash{$key}{date} }, "02/02/2009"; .... и т.д. |
|||
|
||||
| sir_nuf_nuf |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
Это не обязательно. Perl сам создаст пустой массив при первом операторе push. Называется autovivification. Так что можно сразу делать
|
||||
|
|||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |