我最近开始使用模块MooseX::Declare。我喜欢它的语法。它是优雅和整洁。有没有人遇到过想要在一个类中编写许多函数(其中一些很大)并且类定义运行在页面中的情况?是否有任何解决方法使类定义只是声明了函数并且在类之外实际定义了函数定义?我可以使用MooseX :: Declare在类之外定义函数吗?
我想找什么是这样的 -
class BankAccount {
has 'balance' => (isa => 'Num', is => 'rw', default => 0);
# Functions Declaration.
method deposit(Num $amount);
method withdraw(Num $amount);
}
# Function Definition.
method BankAccount::deposit (Num $amount) {
$self->balance($self->balance + $amount);
}
method BankAccount::withdraw (Num $amount) {
my $current_balance = $self->balance();
($current_balance >= $amount)
|| confess "Account overdrawn";
$self->balance($current_balance - $amount);
}
我可以看到,有一种方法可以使课堂可变的。有谁知道该怎么做?
发送电子邮件给作者,感谢他的出色工作,告诉他你爱的语法,然后问他是否认为这样的事情是可能的,以及他是否愿意这样做。 可能发生的最坏情况是他可以说'不'。 另一个地方发布将是驼鹿邮件列表。 – daotoad 2009-02-05 07:04:28