perl 學習筆記

2021-07-23 14:51:51 字數 2549 閱讀 2500

perl 語法

一 資料結構

標量 陣列 雜湊 $ @ %

0 八進位制 0x 十六進製制

注釋 #

二 字串

1 字元鏈結 .

2 單引號內字元不會被轉義

3 v字元(乙個以 v 開頭,後面跟著乙個或多個用句點分隔的整數,會被當作乙個字串文字。)

$foo= v102.111.111;

4 here 文件

print

<5 特殊字元 __file__ __line__ __package__

6 轉義字元

\u 強制下乙個字元為大寫

\l 強制下乙個字元為小寫

\u 強制將所有字元轉換為大寫

\l 強制將所有的字元轉換為小寫

\q 將到\e為止的非單詞(non-word)字元加上反斜線

\e 結束\l、\u、\q

三 陣列

1 建立陣列

@array = (1, 2, 'hello');

@array = qw/這是 乙個 陣列/;

2 陣列序列號

perl 提供了可以按序列輸出的陣列形式,格式為 起始值 + .. + 結束值

@var_10 = (1..10);

@var_abc = (a..z);

3 變數上下文

將陣列賦值給乙個標量,它返回了陣列大小

4 陣列操作

push

@array, list

將列表的值放到陣列的末尾

pop@array

彈出陣列最後乙個值,並返回它

shift

@array

彈出陣列第乙個值,並返回它。陣列的索引值也依次減一。

unshift

@array, list

將列表放在陣列前面,並返回新陣列的元素個數。

切割陣列

@sites = qw/google taobao runoob weibo qq facebook 網易/;

@sites2 = @sites[3,4,5];

@sites2 = @sites[3..5];

替換陣列元素

splice

@array, offset [ , length [ , list ] ]

將字串轉換為陣列

split [ pattern [ , expr [ , limit ] ] ]

將陣列轉換為字串

join expr, list

陣列排序

sort [ subroutine ] list

注意:陣列排序是根據 ascii 數字值來排序。所以我們在對陣列進行排序時最好先將每個元素轉換為小寫後再排序。

特殊變數 $[ 表示陣列的第一索引值,一般都為 0 ,如果我們將 $[ 設定為 1,則陣列的第乙個索引值即為 1,第二個為 2

一般情況我們不建議使用特殊變數 $[,在新版 perl 中,該變數已廢棄。

合併陣列(逗號來合併陣列)

@odd = (1,3,5);

@even = (2, 4, 6);

@numbers = (@odd, @even);

四 雜湊

訪問雜湊元素格式:$

建立雜湊

1、為每個 key 設定 value

$data = 'google.com';

$data = 'runoob.com';

$data = 'taobao.com';

2、通過列表設定

列表中第乙個元素為 key,第二個為 value。

%data = ('google', 'google.com', 'runoob', 'runoob.com', 'taobao', 'taobao.com');

也可以使用 => 符號來設定 key/value:

%data = ('google'=>'google.com', 'runoob'=>'runoob.com', 'taobao'=>'taobao.com');

以下例項是上面例項的變種,使用 - 來代替引號:

%data = (-google=>

'google.com', -runoob=>

'runoob.com', -taobao=>

'taobao.com');

使用這種方式 key 不能出現空格,讀取元素方式為:

$val = %data

$val = %data

讀取雜湊的 key 和 value

讀取所有key

我們可以使用 keys 函式讀取雜湊所有的鍵,語法格式如下:

keys

%hash

類似的我麼可以使用 values 函式來讀取雜湊所有的值,語法格式如下:

values

%hash

檢測元素是否存在

exists

獲取雜湊大小

雜湊大小為元素的個數

雜湊中新增或刪除元素

新增 key/value 對可以通過簡單的賦值來完成。但是刪除雜湊元素你需要使用 delete 函式:

Perl 學習筆記

在linux上,如果遇到這樣的提示 can t locate module datetime.pm in inc 意味著perl模組沒有安裝全,可以用cpan來安裝缺失的模組 perl mcpan e install module build 如果系統上很多模組都已經很舊了,用這個命令來自動更新 u...

Perl學習筆記

標量 陣列陣列是標量資料的有序列表,是多個標量資料的一種集合。可以包含任意多個元素,從0到全部佔滿記憶體。以 符號作為標識。1,2,3 包含1,2,3三個數字的列表 1,2,3 三個數字,最後逗號被省略 test 4.5 兩個值 空列表 零個元素 1 5 代表 1,2,3,4,5 5 1 空列表,從...

Perl學習筆記

第2章 perl有兩種型別,數字和字串 2.1 數字 所有數字最後都轉換為雙精度浮點數。使用ieee 754的格式。計算中可以方便使用乘方,其格式為 x y。比如,2 3,表示2的3次方 2.2 字串 最強大的!1 最短的字串不含任何字元 最長的字串可以填滿整個記憶體。2 沒有nul字元 特殊字元需...