除了利用參數的型態來判斷要叫用哪一個函式之外,Perl6 還可以根據一些預先設立的情況,來叫用不同功能的同名函式,作法如下:
# 副程式 1 multi is-big(Int $n where * > 10000) { "$n 是較大範圍的整數" } # 副程式 2 multi is-big(Int $n where 100..10000) { "$n 是中範圍的整數" } # 副程式 3 multi is-big(Int $n) { "$n 是小範圍的整數" } say is-big(2000); say is-big(500000); say is-big(50); # => 結果: # 2000 是中範圍的整數 # 500000 是較大範圍的整數 # 50 是小範圍的整數
如上例所示,當參數值是大於 100 小於 10000 時,Perl6 就叫用副程式 2,大於 10000 叫用 副程式 1,小於 100 則叫用 副程式 3。
這項功能非常有用,日後便可見真章。 🙂