Pragmas - perldoc.perl.org
http://perldoc.perl.org/index-pragmas.html
Perl の基本構文をオーバーライドするプラグマ。
#! /usr/bin/env perl use warnings; use strict; package Complex; use overload '+' => sub{ Complex->new(map $_[0]->{$_} + $_[1]->{$_}, qw/r i/)}, '""' => sub{ "($_[0]->{r}, $_[0]->{i})" }; sub new($;$$){ my($class,$r,$i) = @_; $r ||= 0; $i ||= 0; return bless {r => $r, i => $i}, $class; } 1; my $c = Complex->new(10) + Complex->new(0, 10); print "$c\n";