13.14 演算子のオーバーロード

自分が作成したクラスを継承しているオブジェクトにおいて、==や+などの使い慣れた演算子を使用したい。

  • overloadプラグマを使用する
use overload
  '<=>' => \&threeway_compare;

sub threeway_compare {
  my ($s1, $s2) = @_;
  return uc($s1->{NAME}) cmp uc($s2->{NAME});
}