位元詩人 [Raku] 程式設計教學:建置開發環境

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

本文帶著大家建置 Raku 開發環境,做為撰寫 Raku 程式的準備。

註記

Perl 6 已經在西元 2019 下半年更名為 Raku。

線上練習環境

目前較好的 Raku 線上練習環境是 glot.io

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

安裝 Raku 編譯器

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

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

Windows

Rakudo 官方網站提供安裝檔,下載後安裝即可。

Chocolatey 的 Rakudo 版本滯後很多,不建議下載安裝。

macOS

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

$ brew install rakudo-star

GNU/Linux

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

從原始碼編譯 Raku

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

  • Perl 5.10.0
  • Git
  • C 編譯器

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

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

在 Fedora 和 Rocky Linux 下,安裝以下軟體:

# dnf install git
# dnf group install 'Development Tools'

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

# yum install perl-ExtUtils-Command

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

# yum install perl-autodie

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

$ 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

檢查 Raku 版本

$ raku --version
Welcome to Rakudo™ v2025.02.
Implementing the Raku® Programming Language v6.d.
Built on MoarVM version 2025.02.

套件

如果要使用一些套件,可以用 Rakudo 隨附的 zef 來安裝。例如,安裝 CSV 解析器:

$ zef install CSV::Parser

現階段 Raku 原生套件較少,若想藉由相容模式使用 Perl 5 的套件,需要另行安裝 Perl 5。筆者在這裡介紹 Perl 5 的安裝方式,需要的讀者可自行參考。

編輯器

  • Vim
  • Emacs
  • Atom
  • Visual Studio Code
  • Padre:Perl IDE (不建議)

目前 Padre 未持續更新,不建議使用。其他的編輯器都可以考慮,只要順手即可。

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

撰寫第一隻程式

接著,我們用經典的 Hello World 程式來熟悉撰寫 Raku 程式的流程。

撰寫命令稿

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

say "Hello World";

執行此命令稿:

$ raku hello.raku
Hello World

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

直接從命令列執行程式

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

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

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

REPL 互動模式

呼叫 raku 編譯器時若不加入任何參數,raku 程式會進入 REPL 模式:

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

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

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

> say "Hello World";
Hello World
>

REPL 模式的好處是不用建立檔案,可獲得立即性的回饋。要嘗試 Raku 的語法時,可以考慮使用此模式來練習。

Raku 命令稿的編碼

Raku 程式碼預設使用 UTF-8 編碼,這個趨勢可見於數個現代語言中,像是 Golang 或 Rust 等。

注意一些 UTF-8 特殊字元難以用鍵盤直接輸入,應儘量避免使用。

關於作者

位元詩人 (ByteBard) 是資訊領域碩士,喜歡用開源技術來解決各式各樣的問題。這類技術跨平台、重用性高、技術生命長。

除了開源技術以外,位元詩人喜歡日本料理和黑咖啡,會一些日文,有時會自助旅行。