Perl 原本是種寬鬆資料型態(Perl is a loosely typed language)的程式語言,除非必要,否則在程式中不必指定資料型態。Perl6 則改變了這個傳統,Perl6 慢慢地向型態語言靠攏(Perl6 is gradually typed,Perl6 的每種東西都是物件(object),都有一種型態),您可以在必要時對變數、參數、回傳值等指定資料型態,若不指定,則預設為「Any」。
Perl6 沿用 Perl5 的三種基本的容器型態(純量、陣列、關聯式陣列或稱雜湊),可另外指定其內部的資料型態,除此之外,還可以用 class/role 來建構自訂型態。
常見的基本型態如下:
- Int:整數
- Str:字串
- Rat:有理數
- Num:浮點數
- Parcel:不可變的串列
- Scalar、Array、Hash(純量、陣列、雜湊)就不必說了,這是一定有的。。。
用例:
my Int $i = 100; my Str $s = "Hello world"; my Rat $r = 3.14; my Num $n = 1.0e-6; my Parcel $p = (1, 3, 4);
也可以宣告某一種型態的子集合,例如定義一個大於 500 的整數子集:
subset BigInteger of Int where * > 500; my $bi=501; say "yes" if $bi ~~ BigInteger;
以下是和數字型態有關的連結圖:
Perl6 完整的資料型態,可參閱這裡:http://doc.perl6.org/type.html