[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