初めてのMoose - クラスを作る

use Moose

Mooseでクラスを作るのは簡単です。

package Dog;
use Moose;
1;

これで、newというコンストラクタメソッドを持ったDogクラスのインスタンスを生成することができます。

my $dog = Dog->new;
print ref $dog;

ちゃんと$dogがDogのインスタンスであることが確認できました。

use Mooseするとそのパッケージの親クラスとしてMoose::Objectがセットされます。Moose::Objectにはコンストラクタとしてnewメソッドが実装されているのでその恩恵を受けることができます。

もうひとつ。use Mooseした時点で、use strictもuse warningsも必要なくなります。

package Dog;
use Moose;
$name
1;

このコードはMooseによってstrictがonになっているので実行できません。

まとめ

  1. Mooseでクラスを作るときにはuse Moose;
  2. use MooseするとMoose::Objectの子クラスになる
  3. Moose::Objectの子クラスになるとnewというコンストラクタメソッドが使える
  4. Moose::Objectの子クラスではstrictとwarningsがonになる

Moooooooooose!