Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Сортировка хеша массивов


Автор: Suppir 1.9.2011, 15:24
Добрый день!

Есть хеш массивов вида:

$hash{Иванов} 5, 6, 10
          {Петров} 17, 1, 1000
          {Кукурузин} 11, 2, 10

Подскажите, как вывести в файл этот хеш с сортировкой фамилий - по алфавиту, а числовых значений - по возрастанию.

Т.е. должно получиться:

Иванов -> 5, 6, 10
Кукурузин -> 1, 17, 1000
Петров -> 1, 17, 1000

Добавлено @ 15:25
p.s. только, пожалуйста, не в виде однострочника!!!  smile 

p.p.s. Perl Data Structures Cookbook читал. Там нет такого примера. 

Автор: arto 1.9.2011, 16:14
однострочник -- самовыражение, остальное -- платная техническая поддежка.

Автор: Suppir 1.9.2011, 16:16
arto, давайте однострочник. Как-нибудь попробую разгрести smile

Автор: arto 1.9.2011, 16:42
# perl -C6 -Mutf8 -le '$hash = { ''Иванов'' => [ 5, 6, 10 ], ''Петров'' => [ 17, 1, 1000 ], ''Кукурузин'' => [ 11, 2, 10 ] }; print join "\n", map { "$_: @{[join'', '',sort{$a<=>$b}@{$hash->{$_}}]}" } sort keys %$hash' 
Иванов: 5, 6, 10
Кукурузин: 2, 10, 11
Петров: 1, 17, 1000
# 

Автор: Suppir 1.9.2011, 16:52
Спасибо, буду разбираться!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)