sironekotoroの日記

Perl で楽をしたい

すぐわかる オブジェクト指向 Perl 第12章 演算子のオーバーロード

おぉ

  • 前章で作ったセッターとゲッターをひとつのサブルーチン(メソッド)にまとめる。
  • セッターかゲッターかは、呼ばれた時の引数の数で判断する
  • かっこいい!無駄が無い!クール!

うおお・・・

  • 演算子オーバーロードで、同じオブジェクトでも別な内容を応答する、という例題
  • 数字を期待されているのか、文字列を期待されているのか、というのをオブジェクト自体が判断して適切な値を返す、ようにオーバーロードを設定する
  • 正直、自信無い、凄すぎる・・・
use overload
    '""' => "toString",
    '0+' => "toNumber";


sub toString {
    my $self = shift;
    my $a    = $self->{a};
    my $b    = $self->{b};
    my $c    = $self->{c};
    return ("($a,$b,$c)");
}

sub toNumber {
    my $self = shift;
    return ($self->{s});
}
  • 抜粋して書くとこう。
  • うん、正直使いこなせる気がしねぇ・・・