perl指令碼學習指南 簡略筆記

2021-06-23 01:29:24 字數 1994 閱讀 5102

最近在實習,看著公司有些指令碼是perl寫,久聞perl處理文字還是很強大的,趁著週末掃了一般這本書~記錄下了~

undef 預設未定義字元,perl裡面沒有null,defined($x)函式:如果引數為undef返回false

qw(cs phy geo) 類似於 (「cs」, "phy", "geo")列表可以賦值給陣列@array

陣列操作符:pop,push操作末尾,shift,unshift操作開頭,reverse逆序,@array = sort @array;

foreach @array列印陣列;$_是乙個很強大的預設變數

each操作,返回一對@array的(index, value),用在while迴圈中

perl有一道自動適應標量和列表上下文

sub定義子程式(函式),引數會在@_陣列中,呼叫程式可用&符號,不與預設函式衝突可省略,可在函式中定義該

函式的持久私有變數,用state標識,每次呼叫函式時,該變數保持上次變化

my限定變數的範圍為當前作用,一般定義變數都用my

按照行讀取輸入檔案,預設<> 會讀取引數列表的所有檔案,對於每行會以\n結尾,可以用chomp去掉\n

printf可以格式化輸出,sprintf更加強大

檔案控制代碼:open config, '>>:utf8', 'filename' or die "failed : $!",die會丟擲異常,產生輸出,close config;

使用檔案控制代碼:類似while()讀取檔案;改變預設輸出檔案,select config; print "123" 到config檔案,可替換預設stderr

hash陣列:key、value陣列;可以賦值給陣列,展開hash;reverse變成value=>key:%evn環境變數

keys %hash返回keys陣列,values %hash返回values陣列;each返回k、v;exists、delete函式

強大的正規表示式:\a表示開頭;\z表示結尾;/s匹配任意空白;括號可以捕獲變數$1,存續到下次匹配成功;

不捕獲模式:/(?:bronto)?aaaa(bb|cc)/此時$1 代表bb或者cc;/(?\w+)/命名捕獲,$+;

自動捕獲變數:$`匹配前 $&匹配到的 $'匹配後的變數;/***x/p開啟捕獲變數:高版本$

s///替換,類似於sed,支援捕獲$1;\u轉換為大寫

split /正則/, $string:拆分字串為陣列;join函式,split的逆過程;

非貪婪量詞:+?,*?,?,將不進行貪婪匹配;/i忽略大小寫,/m匹配換行符

$^i = ".bak"可以更新檔案,開啟檔案時候以filename.bak開啟,並寫回原檔案

unless(con):類似if(!con);until:條件為假,重複執行;last類似於break;next類似continue;redo回到迴圈體的開頭(new);可加標籤

各種檔案測試符-e,-m測試檔案各種資訊;stat $filename返回檔案的一系列資訊;my @files = glob 「*」:當前路徑所有檔名

字串函式:index,substr;高階排序@res = sort @array

智慧型匹配符:~~:匹配hash的key,陣列是否相同

given-when語句:類似switch,有continue和break;

system加命令,去執行子程序;exec跑到另乙個程序去,perl不再執行;反引號可以捕獲返回值;

支援fork多程序;defined(my $pid = fork) or die "$!"; unless($pid);支援傳送接收sig;

切片:($first, $last) = (sort @array)[0,-1],陣列、hash都可以;eval捕獲錯誤不至於返回;

grep:my @array = grep 1..1000;奇數陣列;my @array = map @data; 操作data中每個元素;均返回列表

Perl學習指南

首先,請考慮如下問題 如果你學過其他語言,那就可以從學習 perl 的語法開始 perl語言入門 或者是從 perl 的自帶文件。當你對 perl 的語法了解後,嘗試書中的例子,試著寫一些簡單的程式。很快你就會發現 perl 和你以前學過的語言類似。如果你是乙個有經驗的程式設計師,你可能直接會從讀程...

shell指令碼學習指南 學習筆記 1 6章

grep 找資料 sed 替換輸資料 cut 格式化文件 join 連線,連線前排序 sort 排序資料 uniq 資料排重 fmt 格式化文字 awk 重組資料,文字 wc 計算行數l,位元組數c,字數w lp 列印 tr 轉義字元 readonly 設為唯讀 export 匯入當前環境 unse...

Shell指令碼學習指南 入門

關於指令碼第一行的 符號注意的幾點 不是必須存在,但存在比不存在好。最好跟上全路徑,長度不易太長最好不要超過64個字元。shell的基本元素 命令與引數 三種基本命令 內建命令,shell函式,外部命令 如 usr bin,usr local bin 變數 變數名以字母或下劃線開頭,長度無限制,內容...