[Cascavel-pm] evitando estruturas "switch-case" em métodos de uma classe
Flavio S. Glock
fglock em gmail.com
Sexta Março 30 11:35:32 PDT 2007
Em 30/03/07, Eden Cardim<edencardim em gmail.com> escreveu:
> On 3/30/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
> > Eu preferia a implementação do Edem, com a dispatch table
> > armazenada implícitamente no namespace da classe...
>
> Sim, os namespaces do Perl também são hashes, só que com um pouco mais
> de mágica. Gosto disso porque dá pra fazer introspecção, debugar, etc.
Ah, a propósito desta observação:
use strict;
use warnings;
package Obj;
sub to_xml {
print 'process xml...';
}
sub to_html {
print 'process html...';
}
sub dispatch {
no strict "refs";
$_[1]->(@_[0,2..$#_]);
};
package main;
my $obj = bless {}, 'Obj';
foreach (qw(to_xml to_html)) {
$obj->dispatch($_);
}
- Flavio S. Glock
Mais detalhes sobre a lista de discussão Cascavel-pm