使用 Perl 搜尋字串, 執行運算並取代

有時候想要對文字檔的內容做運算後再取代原本的文字,本來是想弄個小程式來處理的,寫著寫著發現根本沒必要。

一開始是這樣子寫的:

這樣子就能用類似 sed 一樣的方式處理文字,例如把秒數換算成分鐘:
script.pl ‘s#second=(\d+)#”minutes=”.int($1/60)#e’ file.txt

弄完以後看著這小程式感覺很眼熟,好像在書上看過?Perl 不是有參數可以做類似的事情嗎?

最後用命令列達成一樣的目的:
perl -p -e ‘s#second=(\d+)#”minutes=”.int($1/60)#e’ file.txt

這次印象深刻了,希望下次要用到時能想起來 xD

perlbrew – 幫你安裝及管理多種版本的Perl

Perl用久了, 總是有機會遇到這種情況, 就是你需要另一個版本的Perl
不管是要安裝新程式, 要除錯, 要測試, 或是你只是想玩玩
想安裝新版Perl又不想動到原本運作得很好的版本, 有了perlbrew就變得很簡單了

perlbrew的安裝, 參考 http://search.cpan.org/dist/App-perlbrew/lib/App/perlbrew.pm
請確認你有安裝curl, 然後執行以下命令:

這樣子perlbrew就安裝好了, 接著你可以使用以下命令將perlbrew加入你的$PATH中
或是將此命令加到~/.bashrc中, 就可以不用每次都執行此指令

要怎麼知道有哪些版本可以安裝呢? 使用 perlbrew available 命令:

看得出來從古老的版本到新版本都有, 由於我現有的版本是5.8.8, 所以來安裝5.10.1試試看
使用 perlbrew install perl-5.10.1 來安裝, 也可以偷懶只打版本號 perlbrew install 5.10.1:

在這個畫面會一直停留到安裝好為止, 安裝時間視硬體設備而定, 我想十幾分鐘跑不掉
所以想要知道安裝進度的話, 就另開一個終端機, 使用這個指令看進度:

若是需要調整一些選項, 可以在 perlbrew install 後面加上 -D -U -A 等等參數
例如我需要Perl支援thread跟64bit等等的, 就這樣用:

等安裝好了以後, 我們可以用 perl -v 來確認現在跑的是什麼版本:

目前跑的是5.8.8, 使用 perlbrew switch來切換:

你看, 馬上就變成 5.10.1 了, 真是簡單又方便

當需要測試多個版本時, perlbrew還允許你一次讓所有的版本都執行同樣的指令:

這真是太神奇了阿滋

perlbrew 主要的指令有:

另外,這篇介紹也蠻詳細的:http://www.openfoundry.org/tw/tech-column/8514-perlbrew-perl-installation-management-tool