2010年1月22日

在Perl裏面使用Get Option

新年新氣象...(抖

使用script通常會想要保留一點彈性, 在command line可以做一些設定, 無論是單純的data input或是功能的擴充. 雖然perl讀取command line arguments已經相當簡單, 從@ARGV裏面撈東西就可以了, 但是用了一陣子的Linux之後, 漸漸覺得使用standard option相當直觀而且方便, 如果有現成的Module我們就不必每次都花很多時間在處理input上面了.

參考文章1: 詳細介紹Perl支援的GetOption以及一些歷史
參考文章2: (中文)GetOption的用法

簡單的說, 可以利用 Getopt::Long這個module,
給一個hash variable, 拿到command line的parameter. 另外可以用=s, =f, =i這種宣告來拿到option帶的參數.
更甚者, Getopt::Long提供alias的功能, 對於一個選項可以有多種的命名. 對於console mode的使用也相當的方便. 特別要介紹的是bundling這個選項. 打開之後可以支援複合選項的輸入, 像是-a -b -c 可以簡化成 -abc. 但是這樣一來可能會造成一些誤用, 以致在這個module default是沒有打開的.