我想在Moops中重载一些方法。
我尝试了以下代码:
method setIdNum() {
print "Please enter ID number: ";
chomp (my $input = <STDIN>);
$self->$idNum($input);
}
method setIdNum(Int $num) {
$self->$idNum($num);
}
但是通过说setIdNum被重新定义它的错误。
答案 0 :(得分:3)
如果您需要多方法,则必须将multi
放在method
关键字前面,明确要求它们:
multi method setIdNum() {
print "Please enter ID number: ";
chomp (my $input = <STDIN>);
$self->$idNum($input);
}
multi method setIdNum(Int $num) {
$self->$idNum($num);
}
您可能还需要在类声明中明确要求Kavorka支持:
class Whatever {
use Kavorka qw( multi method );
...