2.1 數字
雖然標量在大多數情況下不是數字就是字串,現在我們最好還是將它們分開來看待。我們首先討論數字,再討論字串。
2.1.1 所有數字內部的格式一致
在下面幾段中,你將看到整數(如255,2001 等)和浮點數(有小數點的實數,如3.14159,1.35x1025),但在內部,perl 都把
它們當作雙精度浮點數來處理◆。這就是說在perl 內部沒有整數值。程式中的整數被當做等價的浮點數來處理◆。你也許
注意不到這種轉換(或者不關心),但你不應當尋找只屬於整數的操作符(不能被浮點數使用的),因為它們不存在◆。
◆雙精度浮點型別類似於c 中由double 定義的型別。它們的大小可能和具體的機器相關,許多當代的系統都使用ieee-754 的格式,它有15
位精度,其範圍至少在1e-100 到1e100 之間。
◆有時,perl 也會使用內部的整數,其對程式設計師不可見。這樣做導致的唯一不同是,程式將執行更快。誰又能抱怨它呢?
◆perl 中有integer pragma.但如何使用它超出了本書的範圍。正如你將看到的,某些操作可以從浮點數得到整數。但那不是我們此刻討論的問題。
2.1.2 浮點數
數字符號(literal)是perl 程式源**中代替某個值的方法。數字符號不是計算或i/o 操作的結果,它是直接寫進**中的
資料。你可能已經很熟悉perl 的浮點數。有或沒有小數點的數字都是允許的(包括+或-號),也可帶乙個十進位制的指數(符號為e)。
1.25
255.000
255.0
7.25e45 #7.25x10 的45 次方(乙個大整數)
-6.5e24 # -6.5x10 的24 次方(乙個絕對值很大的負數)
-12e-24 #- -12x10 的-24 次方(乙個絕對值很小的負數)
-1.2e-23 #指數符號可以大寫(e)
2.1.3 整數
整數是簡單明瞭的:
02001
-40255
61298040283768
最後乙個讀起來有些困難。perl 允許用下劃線來分隔它,因此可以像下面這樣書寫:
61_298_040_283_768
它們是相同的值,但形式上有些不同。你可能認為逗號(,)更恰當,但逗號在perl 中有其它用途(下一章中將介紹)。
2.1.4 非十進位制整數
同許多其它語言一樣,perl 也允許使用非10 為底的數字。八進位制以0 開頭,十六進製制以0x 開頭,二進位制0b 開頭◆。在十
六進製制中a 到f(或者a 到f)分別表示10 到15:
◆「前置0」指示符只對數字有效,對由字串轉換過來得數字無效,在本章後面你可以看到。可以利用oct()或hex()把某個看起來像八
進製或十六進製制的資料串轉換成數字。雖然沒有「二進位制」(bin)函式來轉換二進位制的值,如果某個字串以0b 開頭可由oct()做到。
0377 #八進位制數字377,等同於十進位制數字255
0xff #十六進製制數字ff,等同於十進位制數字255
0b11111111 #等同於十進位制數字255
這些數字表面上看起來並不相同,但這三個數在perl 中都代表同乙個數。對於perl 來講,0 xff 或255.00 是沒有區別的,
因此選擇一種你和你的程式維護者(我們是指那個要讀懂你**的可憐夥計。通常,這個可憐的傢伙就是你,你很可能想
不起3 個月前,你為什麼要那樣做)認為最有意義的一種。
當乙個非十進位制的數字超過4 位時,讀起來將很困難。由於這個理由,perl 允許你使用下劃線來區分:
0x1377_0b77
0x50_65_72_7c
2.1.5 數字操作符
perl 除了提供通常的操作符加(+),減(-),乘(*),除(/)等等之外:
2+3 #2+3,5
5.1-2.4 #5.1-2.4,2.7
3*12 #3*12,36
14/2 #14/2,7
10.2/0.3 #10.2/0.3,34
10/3 #通常是浮點除,3.33333… …
還提供了模數運算子(%)。10%3 的值是10 除以3 的餘數。兩個運算元首先變成它們對應的整數值,如10.5%3.2 轉換為
10%3◆後再計算。另外,perl 中提供了和fortran 類似的指數操作符,c 和pascal 很希望有類似的能力。這個操作符由
兩個*號表示,如2**3,表示2 的3 次方,等於8◆。我們將在需要的地方介紹其它的數字操作浮。
◆注意,在模數運算中,如果有乙個運算元為負數,那其結果和perl 的具體實現相關。
◆通常不能進行乙個負數的非整數次方的運算。對數學有一定了解的讀者知道,這將產生乙個複數(數學概念中的複數:如1+2i,譯註)。
如果想進行類似的預算,你需要math::complex 這個模組
2 Perl 標量資料概述
在英語以及許多其它的語言中,需要區別單數和複數。作為一門由語言學家發明的語言,perl 也是類似的。同一般情況一樣,perl 也有資料型別 標量 標量是perl 中最簡單的資料型別。大多數的標量是數字 如255 或3.25e20 或者字串 如hello 或者蓋茨堡位址 你也許把數字和字串看作不同的事...
指令碼入門(2) perl指令碼
一 注釋 pod 這裡的是注釋 cut 二 chomp 去掉換行符 n 去掉 chomp text 讀入,但不含換行符 三 line 一次讀一行,效能好。會帶有換行符,通常都會加上chomp 操作符去掉換行符,四 鑽石尖括號 使用兩個尖括號表示讀取來自檔案的輸入,可以從命令列中傳遞檔案到 當不注釋掉...
perl自學2 標量資料 20150313
今天閱讀的是 perl語言入門 的第二章 1 34頁 單引號和雙引號中的反斜線含義是不同的。單引號中,反斜線只有兩種情況為轉義 和 前者表示反斜線自身,後者表示單引號。n 為兩個字元,反斜線和n。但是我不明白,如果是表示反斜線的話為什麼不雙反斜線轉義呢?而在雙引號中,n表示換行,t表示製表符。bun...