El ejemplo que sigue ilustra la idea de usar singletons.
Aunque los objetos $a y $b pertenecen a la misma
clase, sólo el objeto $a dispone del método dump.
Para crear un método singleton usamos el método singleton_method.
Puesto que queremos que todo objeto pueda crear sus métodos
singleton debemos ubicar singleton_method en la clase 
UNIVERSAL.
hp@nereida:~/Lperl/src/advanced_perl_programming2$ cat -n singleton.pl
 1  #!/usr/local/bin/perl -w
 2  use strict;
 3  use Class::SingletonMethod;
 4
 5  my $a = Some::Class->new(yuyu => 4, chuf => [ 1..5]);
 6  my $b = Some::Class->new(yuyu => 8, chuf => [0..9]);
 7
 8  $a->singleton_method( dump => sub {
 9    my $self = shift;
10    require Data::Dumper;
11    no warnings;
12    $Data::Dumper::Indent = 0;
13    print STDERR Data::Dumper::Dumper($self)."\n"
14  });
15
16  $a->dump; # Prints a representation of the object.
17  $b->dump; # Can't locate method "dump"
18
19  package Some::Class;
20
21  sub new {
22    my $class = shift;
23
24    bless { @_ }, $class;
25  }
Casiano Rodríguez León
