4
我有一個哈希散列作爲鍵排序陣列中的
%value
g=>10
i=>55
k=>4
n=>100
我有一個數組
@letters = ('k','i','n','g')
請讓我知道如何我的散列鍵的排列順序排序。
我有一個哈希散列作爲鍵排序陣列中的
%value
g=>10
i=>55
k=>4
n=>100
我有一個數組
@letters = ('k','i','n','g')
請讓我知道如何我的散列鍵的排列順序排序。
如果你想在它們出現在@letters
數組,然後以打印哈希值,
print join ",", @value{@letters};
代碼:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Tie::IxHash;
my %hash = (
g=>10,
i=>55,
k=>4,
n=>100,
);
my %sorted_hash;
tie %sorted_hash, "Tie::IxHash";
my @array = ('k','i','n','g');
foreach(@array)
{
if(defined($hash{$_}))
{
$sorted_hash{$_} = $hash{$_};
}
}
print Dumper(%sorted_hash);
打印:
$VAR1 = 'k';
$VAR2 = 4;
$VAR3 = 'i';
$VAR4 = 55;
$VAR5 = 'n';
$VAR6 = 100;
$VAR7 = 'g';
$VAR8 = 10;
提,那我使用Tie :: ixHash模塊。否則,Perl將不會保存數組鍵。
這Perl模塊,實現Perl的哈希值是保存在哈希表元素添加
怎麼做你想要的結果,作爲一個哈希不保留訂單的訂單? – user1937198
可以按照@letters的順序存儲到不同的散列中嗎? – user2441289
哈希不保存順序,所以如果您需要它們,請使用數組數組或從cpan – user1937198