除了利用參數的型態來判斷要叫用哪一個函式之外,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。
這項功能非常有用,日後便可見真章。 🙂
