Perl 5.13.2 的 package 區塊語法

作者:   發佈於:  

Perl 5.13.2 中有一項很值得一提的變動是加上 package 區塊的語法。

use 5.13.2;

package Hello {
    sub world { "hello world" }
}

say Hello->world;
# => hello world

這樣子的語法結構自然很容易讓人聯想到 Java 與 Ruby 的 Class 了。或者應該說,幾種有物件導向能力的語言,大概只有 Perl 在定義名稱空間的語法特別不同。而在 Perl 5.13.2 之後也與其他人相同了。(像這樣的語法似乎成為某種產業標準了?)順便一提,Perl 的 package 不單只是定義 Class 而已。與 Ruby 來比較的話,package 是兼具了 Class 與 Module 兩者的功能。對於 Perl 程式設計師來說,要定義 Class 是用 package,要定義 Module 也是用 package。

收到其他近代語言的反饋,Perl 的語法變化也多了,每個月釋出的新開發版總是有些令人驚奇的內容。Perl 的發展方向真是愈來愈令人期待了。