Para especificar como sobrecargar el operador convertir un objeto a cadena
hay que sobrecargar el operador de stringification
denotado como "\"\""
ó también q("")
o incluso '""'
.
La rutina asociada será llamada siempre que el objeto de la clase correspondiente
aparezca en un contexto que requiera una cadena.
package DaysOfTheWeek; ... my @_day_name = qw(Sun Mon Tue Wed Thu Fri Sat) use overload q("") => sub { $_day_name[$_[0]->val] };De este modo cuando se cree un objeto
DaysOfTheWeek
:
my $day = DaysOfTheWeek->new(3);
y se use en un contexto que requiere una cadena como es la función print
:
print $day,"\n";la función asociada con
q("")
será llamada, dando lugar a la salida:
TueOtros contextos en los que se requiere una cadena y, por tanto, se producirá la conversión son:
$menu{$day}
)
Casiano Rodríguez León