Я хотел бы добавить еще одну вещь, использовать \L sequence
в сортировке.
С Perlfaq4 : Как отсортировать хэш (необязательно по значению вместо ключа)?
Чтобы сделать наш порядок отчетов нечувствительным к регистру, мы используем \L sequence
в строке в двойных кавычках, чтобы все было в нижнем регистре. Затем блок sort()
сравнивает значения в нижнем регистре, чтобы определить, в каком порядке ставить ключи.
foreach (sort { $userids{$a} cmp $userids{$b} or "\L$a" cmp "\L$b" ) {
print "$_: $userids{$_}\n";
}
Выход:
brown: Marketing
jones: Marketing
williams: Marketing
davis: Research
Johnson: Research # here 'J'ohnson, J is in uppercase(taking assumption), come as fifth record
smith: Research
2
foreach (sort { $userids{$a} cmp $userids{$b} or $a cmp $b ) {
print "$_: $userids{$_}\n";
}
Выход:
brown: Marketing
jones: Marketing
williams: Marketing
Johnson: Research # here it shifted to fourth record
davis: Research
smith: Research