Алфавитизация списка хэш-ключей в perl?

Я хочу создать массив, в котором хранится алфавитный список хэш-ключей. Я пробовал этот метод:

@sorted = sort { $hash{$a} cmp $hash{$b} } keys %hash; 

... Но оказывается, что это возвращает список хеш-ключей, отсортированных по значению (тогда как я хочу, чтобы список хэш-ключей отсортировался по алфавиту).

Какие-либо предложения?


person jake9115    schedule 23.05.2013    source источник


Ответы (2)


my @sorted = sort { $a cmp $b } keys %hash;

или просто

my @sorted = sort keys %hash;
person ikegami    schedule 23.05.2013
comment
Ах да, спасибо, что показали мне оба способа, это помогает концептуально увидеть, насколько легко выражение упрощается. - person jake9115; 23.05.2013

Хэш-ключи — это просто строки:

@sorted = sort keys %hash;
person chepner    schedule 23.05.2013