Mouse,Moose和MooseX::Declare

如果你是一个Perl的开发者, 现在还不知道Moose那么你对Perl的了解基本上还停留在10年前了.
虽然国内Perl的开发者寥寥无几, 但Perl的强大远远超越一般人的想象空间.

我使用Perl是让自己更愉快,因为很多事情变得很简单.

Perl的OO一般人很难理解, 但是却用了最简单和巧妙的方式实现了,想想, 一个bless搞定, 再看看
PHP之类的,多么臃肿.

有了Moose,你会发现, 不仅仅OO,AOP这些东西实现起来是多么的轻松.
当看到MooseX::Declare, 你更会惊叹, “这还是Perl么?”.

use MooseX::Declare;

class BankAccount {
has ‘balance’ => ( isa => ‘Num’, is => ‘rw’, default => 0 );

method deposit (Num $amount) {
$self->balance( $self->balance + $amount );
}

method withdraw (Num $amount) {
my $current_balance = $self->balance();
( $current_balance >= $amount )
|| confess “Account overdrawn”;
$self->balance( $current_balance - $amount );
}
}

和教条的Python相比我喜欢Perl的哲学, 同样的结果可以有不同的选择, 如何做,取决你自己.

Comments

Leave a Reply