1. 程式人生 > >Perl hash map操作,定義,插入,刪除,hash函數

Perl hash map操作,定義,插入,刪除,hash函數

-c orm some pan hash函數 bin solid none initial


  1. #!/usr/bin/perl -w

  2. #########################################################################

  3. # File Name: test3.pl


  4. #########################################################################

  5. print "hash map\n";

  6. my %some_hash = ("key1", 100, "key2",200, "key3", 300);

  7. %some_hash = reverse %some_hash; #翻轉的是key-value --> value-key

  8. #這種定義方法能更明確那個是key,那個是value

  9. %some_hash = (

  10. "key4" => 1,

  11. "key5" => 2,

  12. "key6" => 3,

  13. "key7" => 4,

  14. );

  15. #在hash中插入一個新元素,只需要直接賦值即可,有則覆蓋,無則新建

  16. $some_hash{"key8"

    }=5;

  17. my @hash_to_array = %some_hash;

  18. print "hash_to_array: @hash_to_array \n";

  19. #hash 函數

  20. #函數keys返回hash所有的keys, 函數values返回所有的values

  21. my %funcHash1 = ("a"=>1, "b"=>2, "c"=>3);

  22. my @k = keys(%funcHash1);

  23. my @v = values(%funcHash1);

  24. print "keys: @k\n"

    ;

  25. print "values: @v\n";

  26. #函數each 返回key/value列表, 用於叠代hash每一個元素

  27. my %funcHash2 = ("a"=>4, "b"=>5, "c"=>6, "d"=>0);

  28. while( my($key, $value) = each %funcHash2 ){

  29. print "$key --> $value\n";

  30. }

  31. #hash的存儲是無序的,可以用sort排序

  32. foreach $key ( sort(keys(%funcHash2)) ){

  33. $value = $funcHash2{$key};

  34. print "key: $key => value: $value\n";

  35. }

  36. #exists 函數,查看hash中是否含有某個key

  37. if(exists $funcHash2{"a"}){

  38. print "funcHash2 中存在這個key\n";

  39. }else{

  40. print "funcHash2 中不存在這個key\n";

  41. }

  42. #如果省略exists,則是通過value是undef或者是0判斷不存在,但value==0是存在的元素

  43. if($funcHash2{"d"}){

  44. print "funcHash2 中存在這個key\n";

  45. }else{

  46. print "funcHash2 中不存在這個key\n";

  47. }

  48. #delete 函數, 刪除hash中某key對應的元素

  49. my %funcHash3 = ("a"=>11, "b"=>22, "c"=>33);

  50. @temp = %funcHash3;

  51. print "@temp\n";

  52. delete $funcHash3{"b"}; #返回的是刪除的key所對應的value 22

  53. @temp = %funcHash3;

  54. print "@temp\n";

  55. #雙引號中支持單個hash元素, 但是支持整個hash內插

  56. print "$funcHash3{'a'}\n"; #輸出對應的單個元素

  57. print "%funcHash3\n"; #不支持這種形式,直接輸出$funcHash3





end


Perl hash map操作,定義,插入,刪除,hash函數