Sobrecarga y Contexto de Cadena

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:
Tue
Otros contextos en los que se requiere una cadena y, por tanto, se producirá la conversión son:

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19