Perl的駱駝精神(一)

來源:互聯網
上載者:User

標籤:

Perl語言中的大部分語句運算式後都緊接一個分號,分隔不同的Perl語句。

perl解譯器能一次完成編譯和運行這兩個動作。 perl通過一對反引號"``"來表示運行外部命令。

 

標量(scalar)包括數字和字串兩部分。

在perl內部按“雙精確度浮點數”的格式來儲存數字,整型常量也會被轉換成等效的浮點數。

perl允許在數字直接量間插入“_”分隔字元。而且對於十進位(decimal)之外的數。八進位(octal)以“O”開頭。

                                                     十六進位(hexadecimal)以“0x”開頭。二進位(binary)以“0b”開頭。

數字操作符包括:+,-,*,/,%。模數操作先取整再求餘。

        $fred += 5;         $str .= "";

 

perl內的字串長度不受限制,從Null 字元串到無限長都可以。

如果源碼內出現除ASCII之外的其他字元,需要加use utf8;來加入任意一個unicode的支援。

單引號內的字串,基本不會出現特殊字元,除單引號“ ‘ ”和“ / ”,其他字元都表示他們本身。

雙引號內的字串,可以表示多個特殊字元,而且支援變數插入。

字串操作符有:字串串連符“ . ”,字串重複操作符“ x ”。表示重複的直接量在使用前會取整,直接去掉小數。

         5x4.8          #得到“5555”

perl內支援數字與字串直接的自動轉換,根據操作符來判斷。字串中的非數字部分及其之後的數字部分,在轉換過程中都會被忽略。

 

標量變數(variable),以貨幣符號“$”來表示,為了避免變數名的歧義,可以使用花括弧{}來將變數名括起來。

perl中的變數不需要初始化,初始值都是undef。而後可以直接用來賦值或運算。

運算操作符有比較操作符:按數字或字串來劃分,==(eq), !=(ne), <(lt), > (gt), <= (le), >= (ge)。

布爾值:perl內部沒有專用的布爾類型。如果數字是“0”,則為假,其他都是真。如果字串是空,則為假,其他都是真。

           ’0‘是唯一的為假的非Null 字元串。

perl中的控制結構:if...else..      while( )  {.....}

 

print輸出結果用雙引號“”來表示輸出內容。

          print "The answer is ", 6*7, ".\n";         #也可以用逗號","隔開,連在一塊來輸出。

perl獲得使用者輸入<STDIN>一般在末尾會帶有分行符號。

         $line = <STDIN>;

chomp()函數,用於去掉字串末尾的分行符號。

         chomp($text = <STDIN>);

defined()函數,用來判斷某個字串是不是Null 字元串。

perl內部的警告功能。可以在命令列用perl   -w perl_file來表示。或者use   warning。

當perl未被告知使用哪個變數或數值時,使用預設變數$_。

         如print沒參數時,預設列印$_的值。

 

數組:存放列表變數,可以用“@”字元加數組名來引用整個數組。數組索引從“0”開始到“$#+數組名”

          $rock[$#rock] = ‘hard rock‘;              #對最後一個元素賦值。

列表直接量:用圓括弧內用逗號隔開的一串數字表示。或者使用qw ()表示,其中的空白符會被自動忽略。

                 qw( fred barney betty dino )  #表示4個元素的列表。

                 或者使用範圍操作符 ..   (1..100);   #以“1”為單位而遞增。

帶雙引號的字串內也可以進行數組插入,同時注意數組的索引值中的變數會按普通的字串運算式來表示,進而計算索引值。

                 $y =2;   $x = "this is $fred[$y-1]‘s place"   #會直接取$fred[1]這個變數。

在標量上下文和列表上下文,perl的處理方式是不同的。

           1)數組的名稱在列表上下文,返回元素的列表。在標量上下文,返回數組中的元素個數。     $number = [email protected];

           2)在標量上下文,使用reverse函數。  $backwards= reverse qw/yabba dabba doo/;    #賦值oodabbadabbay。

           3)在標量上下文,<STDIN>返回輸入資料的下一行。在列表上下文,<STDIN>返回所有剩下的行。

 

pop/push操作:對數組的最後一個變數進行操作。

shift/unshift:對數組的第一個變數進行操作。

splice操作:對數組隨意的修改。第一個參數表示要修改的數組。第二個參數表示操作的元素的起始索引。第三個參數表示操作的長度。

                 第四個參數表示要替換的列表。

                 @array= qw( pebbles dino fred barney )

                 @removed=splice @array,  1, 2, qw(wilma);     #@array=qw( pebbles wilma barney)。

可以使用foreach迴圈體來遍曆列表或數組中的數值,並且在此過程中列表或數組或變數都不會被改變。

                  foreach $rock (@rocks) {....}

reverse操作符:返回次序相反的列表或數組。

sort操作符:按ASCII碼的大小或字元的代碼點的大小來對列表或數組進行排序。

each操作符:返回數組中下一操作元素的索引值及數值。

                  while (my ( $index, $value) = each @rocks)   {...}

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.