我有這樣的一套代碼:包含特殊字符的字母順序perl的
use strict;
use warnings;
my %hash = (5328 => 'Adorable',
26191 => '"Giraffe"',
57491 => 'Is Very',
4915 => 'Cute',);
foreach (sort { ($hash{$a} cmp $hash{$b}) || ($a cmp $b) } keys %hash)
{ print "$hash{$_}\n"; }
這將導致如下:
"Giraffe"
Adorable
Cute
Is Very
我需要它是按字母順序排列,而之前忽略的特殊字符AlphaNumeric字符喜歡在此示例中:
Adorable
Cute
"Giraffe"
Is Very
有什麼建議嗎?
使用未加引號的字符串作爲鍵構建散列並對鍵進行排序。您還可以修改比較中的每個值。 –
如果鍵是數字的,你可能想用'<=>'而不是'cmp'來進行二級排序。 –
您的數據是錯誤的。您需要刪除引號,然後才能到達散列附近的任何位置。您是否正在處理CSV數據? – Borodin