perl指令碼語言學習

2021-06-25 15:29:04 字數 2246 閱讀 9641

來公司的第二個星期便看了一下perl語言,發現掌握一門指令碼語言還是非常有用的。到現在為止已經入職兩個月,用perl指令碼做了這些活:

1. 修改了公司的乙個爬取網頁源**的指令碼

2. 改進了乙個出特徵庫的指令碼,根據svn status的狀態,來優化,將只需要新增的db的資料進行處理。

3. 編寫了乙個指令碼,用於比對兩個資料夾的檔案(檔案數量大約在+),之後選擇需要處理的檔案。用perl強大的正則匹配獲取對應的字段,並將資料全部放入到excel當中。其中有部分字段需要進行英中文對應,此時建立了兩個資料夾進行存放對應的中英文本段,讓指令碼讀取兩個檔案來進行正確匹配,這樣易於後期的維護。此外,由於資料夾的路徑可能會發生更改,又用乙個bash指令碼來連線幾個perl指令碼,並將常用的引數直接寫入到bash指令碼中,這樣亦可能對應單獨使用perl,又可能在不更改引數的情況下,使用bash指令碼快速執行指令碼功能。後續會將**貼上來做個分享。

以下為剛開始看perl語言入門的一些基礎小筆記,之後在改寫指令碼和自己編寫指令碼的時候也積累了一些東西,並沒有記錄進去,以後應該會做整理補充進去。因為這是最開始的記錄,可能會顯得非常基礎的東西。

# 為注釋

#! 則表示執行下面檔案的程式

反引號 `......` 表示執行外部程式

下劃線可以用來分割資料,並不會改變原資料

如 98908008080 為了方便閱讀,可以寫成

98_908_008_080

perl 中的null沒有特殊含義

單引號字串內,除了單引號或者反斜槓之外的字元都表示自身

雙引號字串內,反斜槓可以用來表示控制字元

用 . 能夠連線字串

x可以表示字串重複操作符

perl -w my_program

的 -w 引數可以在執行的時候看到警告

-x 可以忽略所有警告

在perl程式內加上

use diagnostics; 將可以看到更詳細得警告說明

命令列加上 -m 引數能決定是否啟用diagnostics

$變數名

{} 分隔符, 可以用於分隔字串

數字      0 為 false

字串 空串 為 false

undef 為 false

比較特殊的是, 字串 '0' 也為false

可用於標準輸入流

如 $line=;

chomp() 可以用來去掉換行符 (很常用)

結合使用: chomp($line=) 讀入且不包含換行符

defined 函式可以用來判斷是否為undef

$define ($text)                  text為undef時返回false,否則返回true

perl 陣列沒有長度限制,未賦值的陣列元素值為undef

$#array 表示array陣列最後乙個元素得索引

array[-1] 表示最後乙個陣列元素

@array 表示 all of the array 即可以對所有元素進行整體操作

@array = (1 .. 5) 將1,2,3,4,5賦值給array 賦值是括號可以不加

@array = qw (qwe wer ert rty); 將字串"qwe", "wer", "ert", "rty"賦值給array

qw可以允許使用任何標點符號作為分界符

push/pop (陣列從尾部壓棧出棧), shift/unshift (從開頭壓棧出棧)

foreach $rocks (@rocks) 可以遍歷陣列

$_ 可以代表 foreach 迴圈中省略的控制變數

1 foreach (1 .. 10)

reverse 逆轉, sort 排序

@lines = ;

ctrl+d來表明輸入結束 (unix) ctrl+z (windows)

@_ 是程式得私有變數

使用my可以在子程式裡建立私有變數

程式開頭加上 use strict; 將會使程式檢查更加嚴謹

$! 表示系統會提供一些有用的可讀資訊, 比如在開啟檔案失敗得時候

@array = split (//, $string); 函式可以將字串拆分,//內表示按空格來拆分,/\./表示按小數點拆分。

@argv 表示命令行的引數列表

=~ 表示匹配繫結,成功返回true。$& 表示成功匹配的值 $` 表示匹配前 $' 表示匹配後

=~ s/正則/替換內容/g 可以用這種方式將所有匹配的字段全部替換

第一篇部落格,就先這樣,之後應該還會將工作中和學習中積累的點點滴滴都寫進去,多總結,多積累。

Python指令碼語言學習

每天都應該有新的進步!感覺現在只掌握c語言,在漏洞分析研究中,不夠用。所以還是需要學習一門程式語言,以備不時之需。python的安裝和環境變數設定 在環境變數中新增python目錄 在命令提示框中 cmd 輸入 path path c python 按下 enter 注意 c python 是pyt...

TCL指令碼語言學習

語言簡介 tcl是一種很通用的指令碼語言,它幾乎在所有的平台上都可以解釋執行,功能強大。是tool command language的縮寫,發音為 tickle 實際上包含了兩個部分 乙個語言和乙個庫。首先,tcl是一種簡單的指令碼語言,主要使用於發布命令給一 些互交程式如文字編輯器 偵錯程式和sh...

TCL指令碼語言學習

語言簡介 tcl是一種很通用的指令碼語言,它幾乎在所有的平台上都可以解釋執行,功能強大。是tool command language的縮寫,發音為 tickle 實際上包含了兩個部分 乙個語言和乙個庫。首先,tcl是一種簡單的指令碼語言,主要使用於發布命令給一 些互交程式如文字編輯器 偵錯程式和sh...