Perl6 有非常豐富完整的物件導向功能,相較於 Perl5,Perl6 物件導向的語法更直覺、更好用,可以說,Perl5 那個奇怪的物件方法,已成過往雲煙。
用例:
# 自訂 MYCLASS 類別
class MYCLASS {
has $.num; # 公開的欄位屬性,不可更改
has $.num2 is rw; # 公開的欄位屬性,可更改
has Int $!numpri; # 私有的欄位屬性
# 方法
method get_value {
$.num + $.num2 + $!numpri;
}
# 方法
method set_value($n) {
$!numpri = $n;
$.num2 = 100;
}
};
# 建立 MYCLASS 類別的實例 $myobj,用建構子設定公開屬性 $.num 的值為 20
my $myobj = MYCLASS.new(num => 20); # $.num 設為 20
# 執行物件方法 set_value
$myobj.set_value(1000); # $!numpri 設為 1000,$.num2 設為 100
# 執行物件方法 get_value
say $myobj.get_value();
# => 結果:
# 1120 (即 20 + 100 + 1000)
