El método singleton_method crea una clase 
para el objeto que hace la invocación
- si no fué creada anteriormente - 
y hace que esta nueva clase herede de 
la clase del objeto.
El algoritmo garantiza que objetos distintos tendrán clases
distintas.
lhp@nereida:~/Lperl/src/advanced_perl_programming2$ sed -ne '9,23p' `perldoc -l Class::SingletonMethod` | cat -n
 1  package UNIVERSAL;
 2
 3  no warnings; no strict; # no guarantee
 4
 5  sub singleton_method {
 6      my ($object, $method, $subref) = @_;
 7
 8      my $parent_class = ref $object;
 9      my $new_class = "_Singletons::".(0+$object);
10      *{$new_class."::".$method} = $subref;
11      if ($new_class ne $parent_class) {
12          @{$new_class."::ISA"} = ($parent_class);
13          bless $object, $new_class;
14      }
15  }
Casiano Rodríguez León
