最近在想有沒有辦法把 Perl 裝到隨身碟裡,這樣我隨時隨地都可以使用我自己的 Perl 小工具。研究了許久後發現有兩種辦法:

第一種方法可以參考這篇文章的做法。他的做法是下載 Perl 的 source code,然後自己 compile。方法很簡單:

1. 準備好 compiler,可以下載 MinGW (官網連結) 並安裝,MinGW 是 GNU 在 Windows 系統上的 compiler。

2. 準備好 Perl 的原始碼,這可以去 cpan (下載頁面) 抓。

3. 準備好 make 。可以使用 dmake

都準備好就可以開始自己編譯囉。其實非常的無腦,就是到原始碼的資料夾下後,執行

dmake
dmake test
dmake install

跟 Perl 模組的 make 方法幾乎一樣。需要注意的是我有先把 MinGW 下 bin/ 裡面的 type.exe 拿掉,因為 type 這個指令在 Windows 的 command line 模式下是有意義的,若被覆蓋掉會有問題。編好的 Perl 就可以丟進隨身碟裡面囉。

第二種方法其實超級無腦又好用,就是先安裝 ActivatePerl,然後把安裝好的整個 Perl 資料夾丟進隨身碟,就可以用了。而且 ActivatePerl 有解決路徑的問題,執行 perl.exe 的時候他會自動設定 @INC 的值,所以不會發生找不到函式庫的慘狀。這兩種方法是我實際玩過可行的,其實根本不用自己編譯吧,我認為並沒有比 ActivatePerl 好。另外如果先用 ActivatePerl 的 PPM (Perl Packet Management) 把想要的模組安裝好,再放進隨身碟裡,就不用考慮模組安裝的問題囉。

雖然我方法都研究出來了,但是三心兩意的我又開始想跳槽到 Python 陣營....,這樣一直轉變好像不太好 = =。 雖說我已經試過 Perl 寫 Tkx,向 SQLite 溝通等一些基礎的功能,看來還是先玩一下 Python 再來決定到底要用哪個,畢竟 Google App Engine 也只能用 Python 啊 :P。

創作者介紹

zwai 小窩

zwai 發表在 痞客邦 PIXNET 留言(2) 人氣()


留言列表 (2)

發表留言
  • 小賢
  • 用 ActiveState 的 PDK 工具 PerlApp 也很好用。
    我的做法是把有用到的模組都打包到執行檔裡。
    那個執行檔會用 eval 的方式執行其他 .pl 檔案。
    這樣就不必把整個 Perl 目錄考到隨身碟了。
    而且也保留了隨時修改 .pl 檔的彈性。
    我用到的模組及Perl核心全部打包成一個執行檔大約2MB多。
  • 2MB!太厲害了!我超有興趣,有更詳細的可以透露嘛?:P

    zwai 於 2009/03/12 13:11 回覆

  • 小賢
  • 自己寫一個 PerlShell

    寫一段程式如下:
    ------------------------------------
    use Win32;
    # ↑ 把一些常用的模組都加進來
    require($ARGV[0]);
    ------------------------------------

    存成 PerlShell.pl

    執行 PerlApp PerlShell.pl 產生 PerlShell.exe

    只要一個執行檔 + .pl 檔,到沒裝 Perl 的電腦只需打 PerlShell your_script.pl 就能執行啦!

    這是最簡範例, 我用 PDK8 + Perl5.8 包起來大約5百多K。隨著模組的增加,包出來的執行檔會越大。
    當然你可以加些程式碼設計出自己所需的 PerlShell。
找更多相關文章與討論