Perl 6 程式設計教學:建置環境

PUBLISHED ON SEP 24, 2017 — PROGRAMMING

    線上練習環境

    目前較好的 Perl 6 線上練習環境是 glot.io 網站,這個網站是一個新興的線上程式碼練習及分享環境,優點在於分享的程式碼可直接執行,互動性較一般靜態程式碼分享網站好。這個網站對於初期的練習來說,應該足夠。

    安裝 Perl 6 編譯器

    註:官方使用編譯器來描述 Rakudo Perl 6,實際上是混合直譯和編譯,但不會產生執行檔,行為上接近傳統的直譯語言。

    Perl 6 在發展過程中出現數個實作品,包括 Parrot、Pugs、Perlito、Rakudo;目前 Perl 6 最好的實作品是 Rakudo Perl 6,除非有特殊考量,應優先使用這個版本。

    在 Windows 上安裝 Perl 6

    官方網站即提供安裝檔,下載後安裝即可。如果要使用一些 Perl 6 套件,還要另外安裝 Git 和 Strawberry Perl。因為 Perl 6 目前套件較少,若想藉由相容模式使用 Perl 5 的套件,需要另行安裝 Perl 5。

    在 Mac 上安裝 Perl 6

    可以透過官方網站的 PKG 來安裝;不過,比較推薦透過 Homebrew 來安裝,用以下指令安裝:

    $ brew install rakudo-star
    

    在 GNU/Linux 上安裝 Perl 6

    這裡下載適用於 Ubuntu、Debian、Fedora、CentOS 的套件安裝即可。

    從原始碼編譯 Perl 6

    若先前的方法無法安裝時,或有特殊需求,才考慮自己編譯。需要以下軟體:

    • Perl 5.10.0
    • Git
    • C 編譯器

    在 Ubuntu/Mint/Debian 下,安裝以下軟體:

    $ sudo apt-get install build-essential git libssl-dev
    

    在 Fedora/CentOS/Red Hat 下,安裝以下軟體:

    # yum install git
    # yum groupinstall 'Development Tools'
    

    在 Fedora 下需額外安裝 perl-ExtUtils-Command:

    # yum install perl-ExtUtils-Command
    

    在 CentOS 7 下需額外安裝 perl-autodie:

    # yum install perl-autodie
    

    以下以 2017.7 版為例,說明如何編譯及安裝 Perl 6:

    $ tar -xf rakudo-star-2017.07.tar.gz
    $ cd rakudo-star-2017.07
    $ perl Configure.pl --backends=moar --gen-moar
    $ make
    $ make install
    

    install/binshare/perl6/site/bin 加入 PATH 變數即可。

    若要裝成全系統皆可用,指定安裝路徑即可:

    $ perl Configure.pl --prefix=/usr/local --backends=moar --gen-moar
    $ make
    $ sudo make install
    

    檢查 Perl 6 版本

    使用 perl6 -vperl6 --version 可檢查 Perl 6 的版本:

    $ perl6 -v
    This is Rakudo version 2017.07 built on MoarVM version 2017.07
    implementing Perl 6.c.
    

    若有顯示 Perl 6 的版本,代表安裝成功。

    支援 Perl 6 的編輯器

    • Vim
    • Emacs
    • Atom
    • Visual Studio Code
    • Padre:Perl IDE (未持續更新)

    註:Vim 和 Emacs 相對較難上手,初學者建議先嘗試其他編輯器。

    Hello World

    接著,我們用 Hello World 來熟悉撰寫 Perl 6 程式的流程。

    撰寫命令稿

    建立一個文字檔案,命名為 *hello.pl6*,加入以下內容:

    say "Hello World";
    

    執行此命令稿:

    $ perl6 hello.pl6
    Hello World
    

    對於較長的程式,會將其寫成命令稿,便於日後重覆利用。

    直接從命令列執行程式

    對於簡短的程式,可直接從終端機執行:

    $ perl6 -e 'say "Hello World";'
    Hello World
    

    這種程式稱為 one-liner,在 Unix 文化中很常見。

    互動模式

    若不加入任何參數,perl6 程式會進入 REPL 模式:

    REPL 指的是 Read-Eval-Print-Loop 的即時性互動環境。

    $ perl6
    To exit type 'exit' or '^D'
    >
    

    在此可輸入程式,可直接看到結果:

    > say "Hello World";
    Hello World
    >
    

    對於簡短的語法,也可以在此模式下嘗試看看。

    編碼

    Perl 6 程式碼預設使用 UTF-8 編碼,這個趨勢可見於數個現代語言中,像是 Go 或 Rust 等。然而,由於一些 UTF-8 特殊字元難以用鍵盤直接輸入,應儘量避免使用。