在 Perl 中,我知道你可以动态地使用eval
和*{$func_name}
调用函数,但是你如何使用对象的方法来做到这一点呢?
例如
EZBakeOven
sub make_Cake { ... }
sub make_Donut { ... }
sub make_CupCake { ... }
sub make_Soup { ... }
sub make{
my($self,$item) = @_;
if( defined $self->make_$item ){ #call this func if it exists
$self->make_$item( temp => 300, with_eggs => true );
}
}
所以如果我说类似的话
$self->make('Cake');
#or maybe I have to use the full method name
$self->make('make_Cake');
它会调用
$self->make_Cake();