• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            那誰的技術博客

            感興趣領域:高性能服務器編程,存儲,算法,Linux內核
            隨筆 - 210, 文章 - 0, 評論 - 1183, 引用 - 0
            數據加載中……

            Perl學習筆記(一)--變量

            Perl中的變量有三種:標量,數組,以及Hash表.

            標量可以存放的數據類型有很多,除了常用的字符串和數字外,還可以存放引用, 而引用則可以是任何類型數據的引用.
            比如:
            @array = (1, 2, 3);
            $ref = \@array; #創建一個對數組array的引用
            注意引用的使用方法是, 在所引用的對象前面加上\,而在解引用的時候需要記住的是引用是一個標量,所以$ref表示的是一個引用, 要繼續解釋該引用所引用的數據還需要根據引用的數據類型進一步加以解釋,比如:
            如果標量$ref引用的是一個數組, 那么: $ref->[0], 或者$$ref[0], 或者$($ref)[0], 都是取得該數組的第一個元素.
            如果標量$ref引用的是一個Hash表, 那么: $ref->{key}, 或者$$ref{key}, 或者$($ref){key}, 都是取得該Hash表中鍵為key的value.
            如果標量$ref引用的是一個函數, 那么: &$ref, 或者&($ref), 都是取得對該函數的調用.
            為了方便理解記憶Perl中的引用使用方法,可以把$ref理解為所引用之物的名字, 比如$$ref[0]中, 將$ref理解為array, 那么$$ref[0]可以解釋為$array[0].或者, 用C中指針的方式來理解Perl中引用->符號的使用, 將$ref理解為一個"指針", 而在->右邊, 需要根據所引用的類型進行解釋, 比如數組就是[], Hash表就是{}, 等等.

            列表與數組
            <<Perl語言入門>>(小駱駝)中介紹數組的那一章開始部分說的很明白:列表是數據的序列, 而數組是變量.比如:
            @array = (1,2,3);
            array是一個數組, 它是一個變量;而(1,2,3)則是一個列表, 它是由標量1,2,3組成.

            Hash
            Hash表在賦值的時候常采用如下的方式:
            %hash = (key=>value);
            在Perl中, 使用一個列表對Hash進行賦值, 分別是key1 value1 key2 value2...依次類推, 也就是說, 當采用一個列表對Hash進行賦值操作的時候, 鍵/值是交替出現的, 而在Perl中"=>"和","的意義是一樣的, 放在對Hash進行賦值的列表中, 增加了代碼的可讀性.
            同時注意到, 在Perl中, Hash的鍵都是字符串, 但是在{}之中的的鍵可以不加""或者''號, 比如$hash{key}, $hash{"key"}, $hash{'key'}都是一個意思.

            在Perl中, 如果僅需要取得一個數據的時候, 需要采用$符號.標量自不必解釋, 對數組而言, $array[0]是取得第一個數組元素, 而對Hash而言, $Hash{key}是取得鍵為key的值.
            而要取得數組或者Hash中的部分元素時,使用@符號, 如@array[0,1]返回數組array中的第一和第二個元素組成的列表, @hash{key1, key2}返回hash中鍵為key1, key2的值組成的列表.注意沒有%hash{key1}這樣的語法, 如果要取得所有的數組,使用@array;如果要取得全部Hash中的元素, 包括key和value,則使用%hash.

            變量的內插(Interpolating)
            當把一個數組變量在""中內插的時候, 則將該數組中的各個元素用變量$"(通常是空格)分隔開組合成一個字符串, 因此:
            $temp = join( $", @ARGV );
            print $temp;

            print "@ARGV";
            的意義是一樣的.
            而如果一個數組不放在""中進行內插的話, 僅僅返回這個數組的所有元素組成的列表,如:
            @array = (1,2,3);
            print @array;
            得到的是:123(注意123之間沒有空格分隔).

            不存在對整個Hash的內插, 比如變量hash是一個Hash表, 那么:
            print "%hash";
            僅僅打印出%hash, 它并沒有針對該Hash進行內插.
            變量內插僅僅針對$和@作用的變量.





            posted on 2008-07-30 23:15 那誰 閱讀(1180) 評論(0)  編輯 收藏 引用 所屬分類: Perl

            一个色综合久久| 久久久久久国产精品美女 | 久久国产欧美日韩精品| 亚洲天堂久久久| 日本强好片久久久久久AAA| 99久久精品国产一区二区蜜芽| 国产精品免费久久| 性欧美大战久久久久久久久| 一本伊大人香蕉久久网手机| 一级女性全黄久久生活片免费 | 久久精品国产日本波多野结衣| 久久精品国产亚洲AV无码麻豆| 久久精品国产亚洲7777| 伊人久久大香线蕉综合Av| 久久香蕉国产线看观看99| 狠狠色丁香婷婷久久综合| 国产成人久久激情91| 伊人久久大香线蕉av不变影院| 久久精品国产秦先生| 久久人人爽人人爽人人片AV不 | 蜜臀久久99精品久久久久久小说| 一本伊大人香蕉久久网手机| 婷婷伊人久久大香线蕉AV| 久久精品无码一区二区日韩AV| 精品熟女少妇av免费久久| 亚洲香蕉网久久综合影视 | 国产精品久久一区二区三区| 国产偷久久久精品专区| 久久这里的只有是精品23| 国产香蕉97碰碰久久人人| 久久精品无码一区二区app| 国产V亚洲V天堂无码久久久| 浪潮AV色综合久久天堂| av色综合久久天堂av色综合在| 人妻无码久久精品| 久久精品无码一区二区三区日韩 | 性高湖久久久久久久久| 中文字幕无码精品亚洲资源网久久| 香港aa三级久久三级老师2021国产三级精品三级在 | 国产精品久久久久蜜芽| 国产精品久久久久久|