![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
meridian |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Привет!
Задача сложить два хэша. При печати выводит правильные значения, а результат какой-то не тот. Помогите разобраться, плиз. Я так понял, если просто выполнить %res = (%hash1, %hash2), то значения %hash2 перетрут %hash1.
И второй вопрос. Можно ли сделать, что бы значение %hash1 добавлялось к %hash2, например %hash1 = ( id1 => "str1", id2 => "str2", id3 => "str3" ); %hash2 = ( id1 => "str6", id2 => "str7", id3 => "str8" ); результат %res = ( id1 => "str1", "str6" id2 => "str2", "str7" id3 => "str3", "str8" ); |
|||
|
||||
IceSunrise |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 7.4.2008 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
meridian, привет
твой код выдал мне вот такой результат
Это не то, что нужно? |
|||
|
||||
meridian |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Привет, это то что нужно, но у меня что-то не дает, странно.
Все равно пасиб, сейчас попробую еще раз. |
|||
|
||||
meridian |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Сделал вот что,
заполнил хэши
по идее должны получиться значения "да;нет", но при печати получаю следующее
т.е. res пустое |
||||
|
|||||
meridian |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Со второй часть вопроса разобрался - создание хэшей массивов. Добавление всех значений к первому хэшу
|
|||
|
||||
IceSunrise |
|
||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 7.4.2008 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
meridian, а какую версию перла ты используешь?
Дело в том, что вот эта твоя строчка
у меня печатает:
Правильный синтаксис в данном случае такой:
Но не понятно, зачем здесь так хитрить, пиши просто:
Для вывода в консоль всего хеша используй модуль Data::Dumper, очень просто и удобно:
|
||||||||||
|
|||||||||||
meridian |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
пробовал так , тогда получается id1 res: ARRAY(0x1f9ad50) id2 res: ARRAY(0x1fa6a9c) Добавлено через 7 минут и 10 секунд А вот еще, при получении значений из хэша, который имеет несколько значений, вид $res{"id1"} = [ str1, str2, str3 ] и т.д. как перебирать значения из хэша по ключу ? |
|||
|
||||
IceSunrise |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 7.4.2008 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
meridian,
Вот твой код, который работает как ты хочешь ![]()
Вот его вывод:
Но учти, что в результирующий хеш попадут только ключи из первого хеша (hash1). Если во втором хеше (hash2) будут ключи, которых нет в первом, то и в результирующем хеше их не будет. |
||||
|
|||||
meridian |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Вот такой будет работать ? for my $key ( keys %res ) { print "$key = ".join( ', ', @{ $res{$key} } ); } Добавлено через 2 минуты и 8 секунд Спасибо! Это я знаю, в моем случае так и надо, т.е. что не входит - отбрасываем. |
|||
|
||||
meridian |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
IceSunrise спасибо! Вопрос решен.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |