今日の勉強

"has"によるアトリビュートコンストラクタ宣言

    • is: 属性の読み書き
    • isa: 属性の型
    • +属性名: 親クラスの属性を拡張
    • required: 必須属性
    • handles: メソッドの委譲
    • coerce: 型変換
    • lazy: 遅延生成
    • trigger: 属性に値がセットされた直後に実行する処理
    • predicate: 値が定義済(代入済)か確認するメソッドを作成

MOP(Meta Object Protocol)

    • Mooseは、Class::MOPのSyntax Sugar
    • メタオブジェクトがメソッド呼出元オブジェクトと被メソッド呼出元オブジェクト間のプロキシになっている
    • メソッドフック
      • before, after, around

Moose::Role

    • 多重継承っぽいことが柔軟にできる
      • use Moose::Role
      • required
      • with