J'ai récemment commencé à utiliser le module MooseX::Declare. Je l'aime pour sa syntaxe. C'est élégant et soigné. Quelqu'un a-t-il rencontré des cas où vous voudriez écrire de nombreuses fonctions (dont certaines sont grandes) dans une classe et la définition de la classe dans les pages? Y at-il une solution de contournement pour que la définition de classe ait simplement les fonctions déclarées et la définition de fonction réelle en dehors de la classe?Puis-je définir des fonctions en dehors d'une classe en utilisant MooseX :: Declare?
Ce que je cherche est quelque chose comme ça -
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);
}
Je vois qu'il ya une façon de faire la classe mutable. Est-ce que quelqu'un sait comment le faire?
Envoyez un courriel à l'auteur, remerciez-le pour son excellent travail, dites-lui que vous aimez la syntaxe, puis demandez-lui s'il pense qu'une telle chose est possible, et s'il serait prêt à le faire. Le pire qui puisse arriver est qu'il peut dire «non». Un autre endroit pour poster serait la liste de diffusion de l'orignal. – daotoad