Perl中的駱駝精神

來源:互聯網
上載者:User

標籤:

Perl中的雜湊資料結構。

 

雜湊是一種資料結構,由一對對的鍵(keys)--值(values)對來組成。

                             這些鍵和值都是任意的標量,但鍵總會被轉換成字串而且必須是唯一的字串。

訪問雜湊元素,    $hash{$some_key}    ##和訪問數組的做法類似,只是使用了花括弧{}而非方括弧[]。

                                                              訪問雜湊表中不存在的值得到undef。

                        $family_name{‘barney‘} = ‘rubble‘        ##完成對某一雜湊元素的單一賦值

訪問整個雜湊,    %family_name      ##此時雜湊被轉換成列表,列表中的元素為鍵--值對。

                        %family_name = (‘foo‘, 35, ‘bar‘, 12.4);

                        my %new_hash = %old_hash     ##整個hash的賦值,會先將hash分解為索引值對,

                                                                             後在將索引值對合并為hash。所以前後順序可能改變。

還可以將hash寫為如下的方式來進行賦值   my %last_name = (

                                                                            ‘fred‘  =>  ‘flintstone‘,

                                                                            ‘dino‘  =>  undef

                                                                                   );

=>稱為胖箭頭,來顯式的指出其中的索引值對,其中鍵的‘‘可以省略。  $score{‘fred‘}也可以直接簡寫為$score{fred}。

 

雜湊中的函數。

keys和values分別返回hash中的鍵列表和值列表。my @k = keys %hash;      my @v=values %hash;

                   在標量上下文中,分別返回鍵元素和值元素的個數。

                    if(%hash)     {print "....";}         ##在標量上下文,只要hash中有至少一個索引值對,就返回真。

each函數,從雜湊中返回一組索引值。

                    while ( ($key, $value) = each %hash ) {print "....";}   ##在while中時標量上下文,返回2或0.

exists函數,檢查雜湊中是否存在某個鍵。

                    if (exists $book{"dino"})  {print "....";}

delete函數,刪除雜湊中的某個索引值,不是賦值undef,而是直接刪除。

                    delete $books{$person};

不可以在雙引號內,直接插入整個hash。

                    foreach $persons (sort keys $books)

                               if( $books($persons) )  {print "$person has $books{persons}";}         ##只可以這樣完成單個雜湊的插入

Perl中的駱駝精神

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.