Te recomiendo que le eches un vistazo al hilo
Buscar documentación de Perl Para el tema de bless:
perldoc -f blessLo que hace bless es "bautizar" (bendecir) una referencia (a un escalar, a un hash, a un array, a...) con un nombre (un nombre de clase).
Entonces, el código hace lo siguiente:
Using perl Syntax Highlighting
my $resultado = Result->new($error, $message, $userid); # Llamamos a un método de clase (new) dentro del paquete Result
# new() recibe 4 argumentos: 'Result', $error, $message y $userid
# El primer argumento es 'Result' porque es el 'objeto' o 'clase'
# sobre el que se aplica el método (lo hace Perl por la presencia de '->')
package Result; # Comienzo de la clase Result
sub new { # Comienzo de la definición del método new()
my $class = shift; # $class valdrá 'Result'
my $self = bless # $self almacenará el objeto bendecido que vamos a crear
{ # La llave inicia una ref. a un hash anónimo
'error' => shift, # componentes del hash: pares clave/valor
'message' => shift, # shift() va sacando los argumentos pasados al método
'userid' => shift,
}, $class; # el hash es bendecido con el nombre guardado en $class
return $self; # devolvemos el objeto bendecido. Mejor dicho: estamos devolviendo un valor
# que es una ref. a un objeto de la clase Result.
# El espacio reservado con el 'my $self' será liberado cuando el objeto deje
# de ser usado en el programa principal ($resultado salga de su contexto).
}
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Más información en tu propio ordenador en
perldoc perlobj,
y en la Web (
traducido al español).
Más información en tu propio ordenador en
perldoc perlootut,
y en la Web (
traducido al español).