二:標量資料(筆記)
開始學習perl了。
大部分的標量不是數值就是由字元所組成的字串構成。
1,數值
2,字串
字串是一連串的字元。字串可以包含各種字元的任意組合。最短的字串時不含字元的空字串。
2.1,單引號的字串直接量指的是一對單引號所括住的一串字元。前後兩個單引號並不屬於字串的一部分,它們只是用來讓perl識別字串
的開頭與結尾。單引號和反斜線字元除外,單引號內所有字元都代表它們本身(在字串跨越數行時也包括換行字元)。要標示反斜線本身時
,需要連續兩個反斜線;要表示單引號本身,則將反斜線接著單引號。
2.2,雙引號內的雙字串直接量和單引號內的字串一樣,它也是一連串的字元,不過是被括在一對雙括號裡面,但是雙引號內的反斜線擁有
完整的能力,可用來表示控制字元或透過八進位制及十六進位制來表示任何字元。
幾個特殊的跳脫字元
l 將下個字元轉為小寫
L 將到E為止的所有字元轉為小寫
u 將下各字元轉為大寫
U 將到E為止的所有字元轉為大寫
Q 將到E為止的非文字字元加上反斜線
E 結束L,U或Q
2.3,字串運算子
字串可以用.運算子來彼此連線(concatenation).
字串複製(string repetition)運算子是個特殊的字串運算子,它是一個小寫字母x。此運算子會將左邊的運算元(operand)與它本身重複
連線,次數則有右邊的運算元指定。
"hello" . "world" #與"helloworld"相同
"hello" . '' . "world" #與"hello world"相同
"fred" x 3 #也就是"fredfredfred"
3,數字與字串之間的自動轉換
通常,perl會視需要自動在數字和字串之間進行轉換。它如何知道需要的數字或字串呢?這完全靠作用在標量值上的運算子來決定。如果
運算子需要的是數字(例如+),perl就會將操作視為數字;在運算子需要字串時(例如.),perl便會將運算元視為字串。
4,perl的內建警告資訊
4.1,要在執行程式時啟用警告功能,使用-w命令列選項
perl -w my_program
4.2, 如果想讓該程式每次執行都啟用警告資訊,可以利用開頭的#!行來指明
#!/usr/bin/perl -w
4.3, perl 5.6之後的版本也可以利用warnings這個編譯命令來啟用警告功能
#!/usr/bin/perl
use warnings;
利用diagnostics這個編譯命令可以看到較詳細的問題描述。
#!/usr/bin/perl
use diagnostics;
5, 標量變數
變數(variable)就是某個容器的名稱,裡面可以儲存一個或多個值。變數的名稱在程式執行期間保持不變,但是變數裡的值通常會不斷改
變。
標量變數的名稱是以美元符號($)開頭,後面接著所謂的"perl識別符號":一個字母或下劃線,後面還可以接更多的字母,數字或下劃線。
在perl裡,標量變數總是以$開頭。
6,標量的賦值運算
標量變數的操作中最常見的便是賦值運算,也就是將某個值存進變數裡。perl以等號為賦值運算子,左邊是變數名稱,右邊的表示式則是用
來賦予變數的值。
$fred = 17; #將$fred的值設為17
$fred = $fred + 3; #將$barney設為$fred當前值加上3(即20)
7,雙目賦值運算子
因為像$fred = $fred + 5 這樣的表示式會經常出現,所以perl提供了更新變數內容的簡寫方式,也就是雙目賦值運算子。
$fred = $fred +5; #不使用雙目賦值運算子
$fred += 5; #使用雙目賦值運算子
$fred = $fred * 3;
$fred *= 3;
另一個常見的雙目賦值操作賦,就是由字串連線運算子(.)改造而成的新增運算子(.=)
$fred = $fred . " "; # 在$fred後面加一個空白
$fred .= " "; # 用新增操作副做一樣的事情
8, 用print輸出結果
9, 在字串裡替換標量變數
當字串放進雙引號內時,除了會檢查反斜線跳脫字元外,也會進行變數替換(variable interpolation).字串裡的任何標量變數名稱,
都會被替換成該變數的當前值。
$meal = "brontosaurus steak";
$barney = "fred ate a $meal"; # $barney 現在是"fred ate a brontosaurus steak"
$barney = 'fred ate a ' . $meal; # 另外一種寫法
10,運算子的優先順序與結合性
11, 比較運算子
比較 數值 字串
相等 == eq
不等 != ne
小於 < lt
大於 > gt
小於或等於 <= le
大於或等於 >= ge
12, if控制結構
if ($name gt 'fred'){
print "'$name' comes after 'fred' in sorted order.
";
}
13, 取得使用者的輸入
輸入運算子
$line =
if ($line eq "
"){
print "That was just a blank line !
";
} else {
print "That line of input was: $line";
}
14, chomp運算子
它只能用在一種變數上,該變數的內容必須為字串。如果此字串的結尾是換行符,chomp就會將它移除。
$text = " a line of test
"; #假設是從
chomp ($text); #去除換行符
chomp($test =
$text =
chomp($text);
字串後面如果有兩個以上的字元,chomp只會刪除一個,如果結尾處沒有換行符,chomp就不會起作用並且會返回0。
15,while控制結構
在while迴圈中,只要條件式持續為"真",就會不斷的執行塊裡的程式程式碼
$count = 0
while ($count < 10) {
$count +=2;
print "count is now $count
"; #顯示2 4 6 8 10
}
16,undef值
如果用到某個變數卻還沒有對它進行賦值,那麼變數的初始值就是undef(未定義).
17,defined函式
要判斷某個字串是undef而不是空字串,可以使用define函式。這個函式對undef會返回"假",對其他引數則都會返回"真";
$madonna =
if ( defined($madonna) ) {
print "The input was $madonna";
} else {
print "No input available!
";
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245686/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Per語言入門第4版學習筆記-第二章標量資料R語言筆記
- perl學習筆記---標量筆記
- 自學PHP筆記(二)PHP資料型別PHP筆記資料型別
- 資料庫學習筆記——20 使用遊標資料庫筆記
- Redis學習筆記(二)——Redis資料型別Redis筆記資料型別
- 資料流架構學習筆記(二)-Redux架構筆記Redux
- Python學習筆記(二)——資料型別Python筆記資料型別
- 極光筆記丨資料質量建設實踐筆記
- PHP學習筆記4:標量型別的宣告PHP筆記型別
- php多程式插入資料(pcntl 學習筆記二)PHP筆記
- Redis學習筆記(二)redis 底層資料結構Redis筆記資料結構
- 資料結構與演算法-學習筆記(二)資料結構演算法筆記
- 資料結構與演算法課程筆記(二)資料結構演算法筆記
- 資料結構 第二章(學習筆記一)資料結構筆記
- java學習筆記(二)springMVC +mybatis 取資料流程Java筆記SpringMVCMyBatis
- KITTI-二進位制點雲資料集使用筆記筆記
- 12c in memory option學習筆記二_資料訪問筆記
- [MAUI 專案實戰] 筆記App(二):資料庫設計UI筆記APP資料庫
- 學習筆記15:第二種載入資料的方法筆記
- Kubernetes學習筆記(二):Pod、標籤、註解筆記
- 資料互動筆記筆記
- 資料泵用法筆記筆記
- 6,修改資料(筆記)筆記
- 資料結構筆記資料結構筆記
- 反映資料質量的八個指標指標
- HTML標籤筆記HTML筆記
- HTML筆記----標籤HTML筆記
- 筆記二(JavaWeb)筆記JavaWeb
- RUST 筆記(二)Rust筆記
- 《高效能javascript》讀書筆記-第二章 資料存取JavaScript筆記
- 《網際網路信貸風險與大資料》讀書筆記(二)大資料筆記
- 資料標準和資料質量:技術解析與典型案例
- 輕量級標記語言
- MySQL資料型別筆記MySql資料型別筆記
- Docker筆記(八):資料管理Docker筆記
- 大資料開發筆記大資料筆記
- laravel筆記+資料庫操作Laravel筆記資料庫
- 機器學習筆記——資料集分割機器學習筆記