Hombre no te iba a engañar en una cosa tan fácil de comprobar, si es un clase tipo singleton:
http://github.com/Skriptke/nes/blob/master/Singleton.pm No requiere parámetros a no ser que para debug quieras hacer esto: http://example.com/script.cgi que tendrías que pasarle el nombre de la plantilla Pero en Nes lo normal sería hacer esto: http://example.com/template.nhtml Que no requiere nada. En realidad "new" en Perl es una convención, porque puedes llamar al constructor como quieras, pero como todo el mundo está acostumbrado a hacer new CGI o new lo que sea... Ya he visto en tus módulos utilizas "this" y no "self" supongo que antes trabajabas en C++ o Java. Es posible que no sea el más apropiado, pero a mi me gusto en su momento. Ya te digo que esto deriva de código escrito en el 2000 o por ahí, en su momento lo llame "nes" (No Embedded Source) y lo puse en minúsculas porque no pensaba en subirlo en a la cpan. Pero efectivamente las normas de la CPAN indica que la primera letra al menos de debe estar en mayúsculas, y es por eso que el namespace lo solicite como Nes o HTML::Nes http://www.nntp.perl.org/group/perl.modules/2010/02/msg69879.html ________________________________ De: Salvador Fandiño <[email protected]> Para: Lista de correo de Madrid Perl Mongers <[email protected]> Enviado: vie,19 febrero, 2010 10:42 Asunto: Re: [Madrid-pm] Curso acelerado de Nes Skriptke wrote: > Lo primero que ha sido un placer conoceros, pero tengo una espinita clavada > con Diego cuando me confeso que no supo hacer funcionar Nes, y yo que > presumo de que es fácil de usar... :-) > > Que es Nes: > > Un sistema para la separación del código ejecutable Perl y la representación > de los datos generados en HTML mediante Tags HTML que son reemplazados por > variables creadas en Perl. > > De momento no es ninguna otra cosa. > > http://nes.sourceforge.net/miniblog/es/?item=Principios%20de%20Nes > > Caso práctico: > > Página que muestra un número aleatorio. > > Creamos la plantilla : > > lucky.nhtml > {: NES 1.0 ('lucky.pl') :} > {: # la linea {: NES 1.0 ('lucky.pl') :} le dice a Nes > que cargue el el script lucky.pl para esta plantilla > :} > <html> > <head> > <title>Suerte</title> > </head> > <body> > {:# {: $ number :} es la variable $nes_tags->{'number'} :} > El número de la suerte es: <b>{: $ number :}</b> > </body> > </html> > > Creamos el script Perl: > > lucky.pl > use nes; > > # Único objeto a instanciar en Perl > my $nes = Singleton->new(); > > # Las variables que Nes va a reemplazar en la plantilla > my $nes_tags = {}; > $nes_tags->{'number'} = int rand 10; > > # Único método de Singleton, que envía los datos a reemplazar > $nes_tags->out(%$nes_tags) > > > Y ahora la gracia de Nes, lo convertimos en un objeto: > > lucky.nhtml > {: NES 1.0 ('lucky.pl') :} > {: $ number :} > > Y lo podemos insertar en cualquier página Web así: > > template.nhtml: > {: NES 1.0 script.pl :} > <html> > <head> > <title>Lo que sea</title> > </head> > <body> > ... > El número de la suerte es: <b>{: include lucky.nhtml :}</b> > ... > </body> > </html> > > http://nes.sourceforge.net/miniblog/es/?item=Objetos > > En vez de mostrar un número, nuestro objeto podía mostrar un formulario, un > script PHP, JavaScript, Ajax, etc. o una mezcla. El Tag “include” admite > parámetros: > > http://nes.sourceforge.net/miniblog/es/?item=Tag%20include%20%28file%29 > http://nes.sourceforge.net/miniblog/es/?item=Paradigma%20Nes > http://nes.sourceforge.net/miniblog/es/?item=Incluir%20PHP%20y%20otros > > Prácticamente con esto, ya sabéis Nes, además de $ y de include hay 8 Tags > más, se aprenden en un rato, y el único objeto que tendremos que instanciar > en nuestro script Perl es uno de la clase Singleton y como sólo tiene un > método (out) tampoco tiene perdida. > > http://nes.sourceforge.net/miniblog/es/?item=Sintaxis%20de%20Nes > http://nes.sourceforge.net/miniblog/es/?item=La%20clase%20Singleton > Un par de cuestiones de estilo: 1) Singleton es un muy mal nombre para un paquete. Llamale Nes o Nes::Stash 2) nes tampoco es un buen nombre, los nombre en minusculas estan reservados para pragmas (strict, autodie, etc). Usa Nes o NES 3) Si tu clase realmente es un singleton, no necesitas el new, directamente tendrias que poder hacer Nes::Stash->set(%datos); por ejemplo asi package Nes::Stash; my $singleton; sub set { my $self = shift; ref $self or $self = ($singleton ||= __PACKAGE__->_new); $self->... } ... pero claro solo si es un singleton de verdad, que con la estructura que tienes no tengo muy claro que lo sea! - Salva _______________________________________________ Madrid-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/madrid-pm
_______________________________________________ Madrid-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/madrid-pm
