Pragmas - perldoc.perl.org

http://perldoc.perl.org/index-pragmas.html
Perl の基本構文をオーバーライドするプラグマ。

演算子オーバーロードもあった。
(via T先輩のソース)

#! /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";