我想合併兩個哈希。好吧,我能合併,但輸出是不是我希望它的方式:在perl中合併哈希
這裏是我的代碼:
my %friend_list = (
Raj => "Good friend",
Rohit => "new Friend",
Sumit => "Best Friend",
Rohini => "Fiend",
Allahabad => "UttarPradesh",
);
my %city = (
Bangalore => "Karnataka",
Indore => "MadhyaPradesh",
Pune => "Maharashtra",
Allahabad => "UP",
);
my %friends_place =();
my ($k, $v);
foreach my $ref (\%friend_list, \%city) {
while (($k,$v) = each (%$ref)) {
if (exists $ref{$k}) {
print"Warning: Key is all ready there\n";
next;
}
$friends_place{$k} = $v;
}
}
while (($k,$v) = each (%friends_place)) {
print "$k = $v \n";
}
從這O/P是
Raj=Good friend
Indore=MadhyaPradesh
Rohit=new Fiend
Bangalore=Karnataka
Allahabad=UttarPradesh
Sumit=Best Friend
Pune=Maharashtra
Rohini =Fiend
但我想打印%FRIEND_LIST其次%城市第一。 我試圖做的另一件事是,如果有任何重複的鍵,那麼它應該給我一個警告信息。但它沒有給我任何消息。正如我們在這裏可以看到的,我們有Allahabad在這兩個哈希。
感謝
你只需要從第一哈希的所有鍵從第二所有鍵之前?或者,這些哈希值的鍵還需要以某種方式排序?無論使用哪種方式,您都需要使用數組來保持順序,因爲散列本身並不保留任何(插入或字母)。 – Thilo