Perl語言入門--5--散列、hash

來源:互聯網
上載者:User

標籤:大括弧   reverse   簡單   first   exist   eve   標準   字串   隨機   

                                    hash

一、關聯陣列的形式

  %h=(‘a‘,1,‘b‘,2);         a是key 1是value    b是key  2是value

    以%開頭,()為空白散列

  %h=(‘a‘=>1,‘b‘=>2);    更明顯一些 用這個還可以省略引號  但預設全部都是字串  當有數位時候就不是你的本意了

  元素形式:$h{‘a‘}       #注意用$

  元素為簡單變數,用$。 %h{2.5}  %{-1}  ${$ee} 都是可以的 小數  負數  簡單變數都可以是key

 

二、 關聯陣列的賦值

  1、標準:  %a=(‘a‘,1,‘b‘,2);

  2、數組與散列間賦值:%[email protected]   散列也是數組 只是沒有順序

  3、@a=%h  數組元素的順序隨機

  4、($a,%h)[email protected]   #不太會用  先把數組的第一個值放進簡單變數$a中 再把剩下的放進散列%h中  ,所以@array的個數必須是奇數

  5、%h=(%first,%second)  #浪費記憶體

  6、%h1=(%h2,‘k‘,‘v‘)       #增加一組索引值,必須成對出現

  7、函數的返回,比如split()的返回結果,也可以賦值給散列:

          %h=split(/,/,‘a,b,c,d‘)

  8、片段:@key=(‘a‘,‘b‘,‘c‘)

        @hash{@keys}[email protected]{reverse(@keys)}

        #注意@不能改為$,因$hash{}中key要求是簡單變數,所以括弧裡面是一個數

                 而現在我想圈出一個數組,所以前面要變為@,括弧裡面也是@

                 都應該前後對應

                 如果你輸入 $hash{@keys} 因為$hash大括弧中的key要求是簡單變數   這等同於 $hash{@keys的長度} 也就是@hash{3}

三、 元素賦值與操作

  1、增加: $h{‘a‘}  =  1   不存在則建立,hash不存在也建立

  2、刪除:delete $h{‘a‘}

  3、不要用push pop shift splice 等與順序有關的函數,否則結果不可知

  4、顯示:不能  print "%hash";   這樣輸出的只是字串:%hash

        如用  print %hash  則顯示無空格

         用遍曆的方法來逐一顯示

  5、$a=%hash  $a被賦值為x    x是已有的元素數/分配的記憶體數   沒什麼卵用

四、關聯陣列操作函數

  key(%h) 或 key %h                  #返回鍵列表       

  value(%h) 或 value %h     #傳回值列表       

  

  each(%h)迴圈:  ($key,$value)=each(%hash)

      迴圈中不要增加或刪除元素,因為散列是無序的。迴圈的最後返回undef

  exist:查看關鍵字是否存在

      exist $h{‘key‘}

  undef(%h) : 刪除散列 相當於%=()

  delete

Perl語言入門--5--散列、hash

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.