[Cascavel-pm] evitando estruturas "switch-case" em métodos de uma classe
Eden Cardim
edencardim em gmail.com
Quarta Março 28 10:27:13 PDT 2007
On 3/28/07, Igor Sutton Lopes <igor.sutton em gmail.com> wrote:
> Hrm, um outro email sobre a mesma coisa, um pouco mais elaborado (e
> testado):
>
> <cut>
> sub to_xml {
> print 'process xml...', $/;
> }
>
> sub to_html {
> print 'process html...', $/;
> }
>
> my $dispatch = {
> 'xml' => \&to_xml,
> 'html' => \&to_html,
> };
>
> foreach (qw(xml html)) {
> $dispatch->{$_}->();
> }
> </cut>
Outra forma de se fazer seria:
sub export {
my $self = shift;
my $param = shift;
if( my $meth = $self->can("to_$param") ) {
$meth->($self);
} else {
carp("Unknown format: '$param'");
}
}
--
Eden Cardim
Instituto Baiano de Biotecnologia
Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
Laboratório de Bioinformática
--
"you seem to think that 'close enough' is close enough...
please learn to be 'literal' around programming."
merlyn - on irc.freenode.net#perl
Mais detalhes sobre a lista de discussão Cascavel-pm