• <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>

            QuXiao

            每天進步一點點!

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              50 隨筆 :: 0 文章 :: 27 評論 :: 0 Trackbacks

            寒假期間看了一本關于Perl的入門書籍,感覺不錯,下面是一些讀書筆記:


            你將看到整數(如255,2001 等)和浮點數(有小數點的實數,如3.14159,1.35x1025),但在內部,Perl 都把它們當作雙精度浮點數來處理


            61298040283768,Perl 允許用下劃線來分隔它,因此可以像下面這樣書寫:61_298_040_283_768

            和C,C++不同,Perl 中NUL 字符沒有特殊的含義。Perl 能計算長度,不用靠null 來判斷字符串是否結束。

            單引號字符串中的\n 不會被當作換行符來處理,其僅僅是兩個字符\和n。只有在反斜線(\)后面接的是\或單引號’,其才會被當作特殊符號來處理。

            一個特殊的操作符是字符串重復操作符(string repetition operator),由小寫的字母x 表示。
            “fred”x 3        #“fredfredfred”
            “barney”x (4+1)  # “barney”x 5, “barneybarneybarneybarneybarney”
            5 x 4             #實際上是“5”x 4, “5555”

            標量變量在Perl 中由$開頭

            列表和數組可以包含任意數量的元素。最少含有0 元素,最多可以填滿你的可用內存。這里又體現了Perl 的設計哲學,“沒有不必要的限制”。

            rocks 數組,其最后一個元素的索引為$#rocks

            Larry 提供了一種簡便方法:數組的負數索引值從最后一個元素開始
            負數索引值是-1表示最后一個元素

            一個給定的表達式在不同的上下文中其含義是不同的。
            $fred = something;                # 標量context
            @pebbles = something;          #列表context
            ($wilma,$betty) = something; #列表context
            ($dino) = something;             #列表context

            當Perl 遍歷此子程序時,將會計算每一步的值。此子程序中最后計算的值將被返回。

            這是Unix中很少人知道的一個事實:如許多標準的工具,如cat,sed,也使用這種約定,連接號(-)代表標準輸入流。

            技術上講,<>從數組@ARGV 中得到調用參數。

            printf“The items are:\n”. (“%10s\n”x @items), @items;

            程序的名字在Perl 的特殊變量$0 中

            只有Perl 成功的重新打開新的連接,否則是不會關閉以前的連接。

            要引用整個hash,使用百分號(“%”)作為前綴

            使用delete 后,hash 中將不會存在此key;如果其值是udnef,則key 是存在的。

            不要將正則表達式和shell 中的文件名匹配模式,globs 混淆了.

            Perl 中,注釋可以被作為空白

            使用綁定操作符(=~)將告訴Perl 將右邊的模式在左邊的字符串上進行匹配,而非對$_匹配。

            @fields = split /:/,“abc:def::g:h”; #得到(“abc”, “def”, “”, “g”, “h”)
            這里有一條規則:開頭的空元素會被返回,但結尾的空元素被丟棄
            @fields = split /:/, “:::a:b:c:::”; #得到(“”, “”, “”, “a”, “b”, “c”);

            默認時,split 對$_操作,模式為空白:
            my @fields = split; #同split /\s+/, $_;

            如果沒有指定文件名,則其從標準輸入流中自動打開和關閉一系列文件進行讀入。如果$^I中有字符串,這個字符串則會成為備份文件的擴展名。

            ?號在正則表達式中的第四種用法:問號,表示0 或1 的數量詞,非貪婪修飾符,現在是開頭符

            條件表達式也是先被求值的,雖然被放在后面

            last 會立刻結束循環。(這同C 語言或其它語言中的“break”語句類似)

            可以使用last 從“裸的”代碼塊中跳出。

            next 之后,又會進入下一輪循環(這和C 或者類似語言的“continue”相似)

            redo會調到當前循環塊的頂端,不進行條件表達式判斷以及接著本次循環。

            標簽在整塊之前使用;不是針對代碼中的某些點

            -T和-B分別檢測一個文件是文本的還是二進制,那Perl是怎樣知道的呢?答案是Perl欺騙了我們:它打開一個文件,查看前面幾千個字節,進行合理的猜測。如果沒有太多的怪異符號,則其像文本

            每當在程序中使用stat, lstat,或文件檢測(file test)時,Perl 就會要求系統分配一塊stat buffer給文件(也就是,stat系統調用所返回的buffer)。這就意味著如果想知道文件是否是可讀且可寫的,需要對相同的信息進行兩次系統調用

            這暗示了一個目錄的連接數等于2 (.和..)加上其包含的子目錄的個數。

            在Perl 中,環境變量可以通過%ENV 這個hash 變量得到

            對于system和exec,其輸出的結果傳到Perl標準輸出的地方。有時,將其結果作為字符串保留下來以便進一步處理是很有趣的。這可以通過使用反引號(`)而非單引號或者雙引號做到

            Perl 提供了處理嚴重錯誤的方法:將這些代碼放入eval 塊中

            eval 是一個表達式(不是像while 或foreach 那樣的控制結構),因此結尾處的分號是必須的。

            如果eval 捕捉到了嚴重錯誤,則返回值為undef 或空列表,依賴于其context

            如果將列表的一個元素被賦給undef,則意味著忽略此元素:
            my(undef, $card_num, undef, undef, undef, $count) = split /:/;

            同array slice一樣,(hash slice)變量前的符號($或@符號)決定了下標表達式的context。如果前面是$符號,則下標表達式是在標量context 中被求值,得到一個值◆。如果之前為@符號,則下標表達式在列表context 中被求值,得到一列值。

            posted on 2009-02-02 14:36 quxiao 閱讀(615) 評論(1)  編輯 收藏 引用 所屬分類: 讀書筆記

            評論

            # re: 《Perl入門》讀書筆記 2011-01-10 15:28 gg
            挺好的!  回復  更多評論
              

            久久精品人成免费| 亚洲欧美日韩精品久久| 久久只有这里有精品4| 亚洲国产成人乱码精品女人久久久不卡 | 久久精品三级视频| 欧美国产成人久久精品| 99久久人妻无码精品系列| 久久青青草原国产精品免费| 久久国产V一级毛多内射| 精产国品久久一二三产区区别 | 久久久亚洲欧洲日产国码aⅴ| 色综合久久久久| 无码伊人66久久大杳蕉网站谷歌 | 怡红院日本一道日本久久 | 青草久久久国产线免观| 无码人妻久久一区二区三区免费 | 91久久精品无码一区二区毛片| 亚洲欧美国产日韩综合久久| 久久美女人爽女人爽| 色播久久人人爽人人爽人人片AV| 成人综合伊人五月婷久久| 亚洲人AV永久一区二区三区久久| 蜜臀av性久久久久蜜臀aⅴ麻豆| 日本道色综合久久影院| 久久久久久久久久久久久久| 久久久精品日本一区二区三区| 久久免费高清视频| 精产国品久久一二三产区区别| 久久中文字幕精品| 2021最新久久久视精品爱| 青青热久久国产久精品| 久久激情五月丁香伊人| 久久国产综合精品五月天| 青草影院天堂男人久久| 久久亚洲春色中文字幕久久久| 久久久久久久久久久精品尤物| 色婷婷狠狠久久综合五月| 99热精品久久只有精品| 亚洲伊人久久大香线蕉苏妲己| 人人狠狠综合久久亚洲88| 久久成人18免费网站|