如何合并两个hash,键和相应的值都要合并

比如
%basket1 = (
           "Apple"  => "red",
           "Banana" => "yellow",
           "Lemon"  => "yellow",           
           "Carrot" => "orange"
         );
                 
%basket2=(                 
    "Apple"  => "yellow",
        "tomato"=>"red"
        );
       
合并后的结果
        %together =(
                   "Apple"  => "red,yellow",
           "Banana" => "yellow",
           "Lemon"  => "yellow",           
           "Carrot" => "orange",
                           "tomato"=>"red"
         );

作者: yakczh   发布时间: 2011-06-05

  1. my %basket1 = (
  2.            "Apple"  => "red",
  3.            "Banana" => "yellow",
  4.            "Lemon"  => "yellow",           
  5.            "Carrot" => "orange"
  6.          );
  7.                  
  8. my %basket2=(                 
  9.     "Apple"  => "yellow",
  10.         "tomato"=>"red"
  11.         );

  12. my %together=%basket1;

  13. foreach my $k (keys %basket2) {
  14. (exists $together{$k})?($together{$k}.=','.$basket2{$k}):($together{$k}=$basket2{$k});
  15. }
复制代码

作者: x9x9   发布时间: 2011-06-05