[Cascavel-pm] evitando estruturas "switch-case" em métodos de uma classe

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Quarta Março 28 15:10:40 PDT 2007


Obrigado Igor e Eden, as dicas são de grande valia, em
especial o uso do can(), achei muito criativo (e
suficientemente preguiçoso :-) ).

Estou exercitando bastante o uso design patterns ao
tentar aprender sobre o WxPerl. A API parece muito boa
(ainda não testei portar minha aplicação feita no
Windows para o Linux e ver como ela se comporta) mas o
toolkit peca pela falta de documentação.

Comecei a contribuir com esse Wiki aqui:
http://wxperl.pvoice.org/kwiki/index.cgi? e em breve
devo ter uma aplicação funcional pronta (e útil). Eu
devo colocar ela no perl.org.br junto com algum
tutorial, se alguém quiser ajudar basta me mandar um
email. Ao que parece essa vai ser uma excelente
oportunidade de testar o servidor Subversion do
perl.org.br também. ;-)

[]'s
Alceu

--- Eden Cardim <edencardim em gmail.com> escreveu:

> 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'");
>    }
> }


__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 


Mais detalhes sobre a lista de discussão Cascavel-pm