Perl入門(一)Perl的基本類型及運算子

來源:互聯網
上載者:User

在學習Perl的基礎之前,還是希望大家有空去看以下Perl的簡介。百度百科

一、Perl的基本類型

Per的基本類型分為兩種:數值型和字串型。

數值型可細分為 整數型。如123。 浮點型。如123.123、0.123456。 科學計數型。如1.23E2、1.23e2。 大數實值型別。如1_156_123_585_123。

字串型 字串。如“123456”,‘123’,qq(this is a string too!)

二、用變數儲存基本類型值

Perl定義變數很簡單。格式為:$變數名  (PS:Perl的程式員肯定是想錢想瘋了);引用的方式也很簡單:$變數名。

下面給出一個簡單的樣本:

#!user/bin/env perl -w$int = 123456;$float = 123.456789;$sci_notation1 = 1.2E10;$sci_notation2 = 1.2e10;$big_num = 1_789_854_654_894_654_355_223;$string = "this is a string";printf "int value :$int\n";printf "float value :$float\n";printf "sci_notation1 value :$sci_notation1\n";printf "sci_notation2 value :$sci_notation2\n";printf "big_num value :$big_num\n";printf "string value :$string\n";

輸出結果如下

int value :123456float value :123.456789sci_notation1 value :12000000000sci_notation2 value :12000000000big_num value :1.78985465489465e+021string value :this is a string

簡單解釋一下: 科學技術型數值中E不區分大小寫 大數實值型別採用“_”進行分隔僅是為了方便閱讀,上面採用千分法,你也可以採用萬分法,也可以直接不使用“_” print和printf均為內建的輸出函數。如果想要接收鍵盤輸入資料可以採用後面的格式:$from_key_board = <STDIN>; 從DOS視窗接收輸入,儲存到$from_key_board中

注意: 如果資料過長,會有精度上的舍入。 字元類型的表示 可以使用雙引號"",也可以使用單引號'',必須成對出現。 當單引號內部內容包含單引號或雙引號內部內容包含雙引號時,可以採用反斜線“\”進行轉義。如:"Tom said:\"it is rainning outside!\"". Perl提供另外一種字串表示方式qq代表雙引號(not Tencent QQ),q代表單引號,配合界限符使用。界限符可以使任意非空格、tab、換行字元。例如:qq(Tom said :"it is raining outside")。但是不推薦使用數字和字母作為界限符,會造成程式閱讀困難. 但是也會碰到第二點的問題,如果內部字元創包含界限符,1.成對出現的是允許的,但是會降低可讀性。2.使用逸出字元。3.界限符那麼多,換一個。 上述printf輸出中有引用到之前定義的變數。這種方式僅在“”或pp內部可以使用,其他方式不可。

三、Perl中運算子

多數都和其他語言一樣,如果你有一定的語言基礎,可以只看紅字部分

賦值運算子 = 賦值 +=  例如:$num += 1; 等價於$num =$num+1; -=  例如:$num -= 1; 等價於$num =$num-1; *=  例如:$num *= 1; 等價於$num =$num*1; /=  例如:$num /= 1; 等價於$num =$num/1; %=  例如:$num %= 1; 等價於$num =$num%1;         #模數,除以那個數取餘數 **=  例如:$num **= 2; 等價於$num =$num**2;          #**代表冪,$num的2次方 .=    例如:$str.=“ string” 等價於 $str = $str." string";# . 代表串連符,將兩個字串拼接起來

算術運算子 + - * / % 取餘數 ** 冪指數 10**2 即10的2次方 ++ -- .  連接字串,"this is a "."string" = "this is a string"

數值關係運算子 >      大於 >=    大於等於 <      小於 <=    小於等於 ==    等於 !=     不等於 <=>  大於:1;等於:0;小於:-1;

字串關係運算子 gt      大於 ge     大於等於 lt       小於 le      小於等於 eq     等於 ne     不等於 cmp  大於:1;等於:0;小於:-1;

邏輯運算子 &&或and   與      全真則真 || 或or        或      全假則假 。或not     非       真假假真 xor            異或   同假異真

位元運算 &       按位與 |        按位或 ~       按位非 ^        按位異或 <<     左移位 >>     右移位

特殊運算子 ..         區間表示  如 1..3 等價於 1,2,3 。:    三目操作符,滿足。前條件執行:前內容,不滿足執行:後內容

檔案資料運算子 -r $file 如果$file是可讀取的話,返回1的值 -w $file 如果$file是可寫入的話,返回1的值 -x $file 如果$file是可執行檔話,返回1的值 -e $file 如果$file存在的話,返回1的值 -o $file 如果$file是被執行才所擁有的話,返回1的值 -s $file 返回$file的檔案大小(bytes) -f $file 如果$file是正常檔案的話,返回1的值 -T $file 如果$file是文字檔的話,返回1的值 -B $file 如果$file是Binary檔案的話,返回1的值 -M $file 返回$file檔案最後一次更改時間到現在的日期數

特別注意:

1.Perl不刻意強調變數的初始化,如果一個變數沒有初始化就進行運算,則會取其預設值:數字為0,字串為""Null 字元串。

2.Perl中字串可以和數值進行運算,如果字串看上去不像個數字,則會用0代替

3.千萬注意數值型關係運算子和字串型關係運算子的區別。數字比較時用數值關係運算子,字串比較時用字串關係運算子。

   如果在字串比較時使用了數值關係運算子,如: $name="Jack";$name == "Tom";運算的結果總會是1,原因參見 2。

(到時候你從資料庫裡取出幾千萬的資料別怪我沒說啊,等著被專案經理打死吧)

4.移位操作中<<與作業系統位元有關,如64位作業系統中 1<<64 =1,每移動64位為一個迴圈。

5.Perl中認為0,Null 字元串,未定義值undef為false,其他均為true。

6.字串關係運算中,對兩邊的字串從左至右進行位元壓縮,比較依據Ascii碼錶順序

7.&& 和and並不完全相同,&&要早於and執行

8.邏輯運算子並不是返回0或1,而是返回判斷結束前處理條件的結果。如 1&&2 返回2 ,0&&2返回0,1||2返回1。

Perl常用函數

printf:輸出函數,用法同c語言中一樣;

length:輸出包含內容的長度:如length("asdf")=4;

chop:去除最後一個字元:chop("abcd")="abc";

chomp:去除尾部的斷行符號換行:chomp("abcd\n")="abcd";

substr($string,m,n):給定字串,從地m位開始截取n位長度:substr("Hello",2,3)="llo",計數從0開始,n可省略,即至尾部

相關文章

聯繫我們

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