<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt"><div>Hombre no te iba a engañar en una cosa tan fácil de comprobar, si es un clase tipo singleton:<br><br><span><a target="_blank" href="http://github.com/Skriptke/nes/blob/master/Singleton.pm">http://github.com/Skriptke/nes/blob/master/Singleton.pm</a></span><br><br>No requiere parámetros a no ser que para debug quieras hacer esto:<br><br><span><a target="_blank" href="http://example.com/script.cgi">http://example.com/script.cgi</a></span><br><br>que tendrías que pasarle el nombre de la plantilla<br><br>Pero en Nes lo normal sería hacer esto:<br><br><span><a target="_blank" href="http://example.com/template.nhtml">http://example.com/template.nhtml</a></span><br><br>Que no requiere nada.<br><br>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. <br><br>Es posible que no sea el más apropiado, pero a mi me gusto en su momento.<br><br>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&nbsp; a la cpan.<br><br>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<br><br><span><a target="_blank" href="http://www.nntp.perl.org/group/perl.modules/2010/02/msg69879.html">http://www.nntp.perl.org/group/perl.modules/2010/02/msg69879.html</a></span><br><br><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br><div style="font-family:
 arial,helvetica,sans-serif; font-size: 10pt;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">De:</span></b> Salvador Fandiño &lt;sfandino@yahoo.com&gt;<br><b><span style="font-weight: bold;">Para:</span></b> Lista de correo de Madrid Perl Mongers &lt;madrid-pm@pm.org&gt;<br><b><span style="font-weight: bold;">Enviado:</span></b> vie,19 febrero, 2010 10:42<br><b><span style="font-weight: bold;">Asunto:</span></b> Re: [Madrid-pm] Curso acelerado de Nes<br></font><br><br>Skriptke wrote:<br>&gt; Lo primero que ha sido un placer conoceros, pero tengo una espinita clavada con Diego cuando me confeso&nbsp; que no supo hacer funcionar Nes, y yo que presumo de que es fácil de usar... :-)<br>&gt; <br>&gt; Que es Nes:<br>&gt; <br>&gt; 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.<br>&gt; <br>&gt;
 De momento no es ninguna otra cosa.<br>&gt; <br>&gt; <a href="http://nes.sourceforge.net/miniblog/es/?item=Principios%20de%20Nes" target="_blank">http://nes.sourceforge.net/miniblog/es/?item=Principios%20de%20Nes</a><br>&gt; <br>&gt; Caso práctico:<br>&gt; <br>&gt; Página que muestra un número aleatorio.<br>&gt; <br>&gt; Creamos la plantilla :<br>&gt; <br>&gt; lucky.nhtml<br>&gt; {: NES 1.0 ('lucky.pl') :}<br>&gt; {: # la linea {: NES 1.0 ('lucky.pl') :} le dice a Nes<br>&gt;&nbsp; &nbsp; &nbsp; que cargue el el script lucky.pl para esta plantilla<br>&gt; :}<br>&gt; &lt;html&gt;<br>&gt;&nbsp;  &lt;head&gt;<br>&gt;&nbsp; &nbsp;  &lt;title&gt;Suerte&lt;/title&gt;<br>&gt;&nbsp;  &lt;/head&gt;<br>&gt;&nbsp;  &lt;body&gt;<br>&gt;&nbsp; &nbsp;  {:# {: $ number :} es la variable $nes_tags-&gt;{'number'} :}<br>&gt;&nbsp; &nbsp;  El número de la suerte es: &lt;b&gt;{: $ number :}&lt;/b&gt;<br>&gt;&nbsp;  &lt;/body&gt;<br>&gt; &lt;/html&gt;<br>&gt; <br>&gt;
 Creamos el script Perl:<br>&gt; <br>&gt; lucky.pl<br>&gt; use nes;<br>&gt; <br>&gt; # Único objeto a instanciar en Perl<br>&gt; my $nes = Singleton-&gt;new();<br>&gt; <br>&gt; # Las variables que Nes va a reemplazar en la plantilla<br>&gt; my $nes_tags = {};<br>&gt; $nes_tags-&gt;{'number'} = int rand 10;<br>&gt; <br>&gt; # Único método de&nbsp; Singleton, que envía los datos a reemplazar<br>&gt; $nes_tags-&gt;out(%$nes_tags)<br>&gt; <br>&gt; <br>&gt; Y ahora la gracia de Nes, lo convertimos en un objeto:<br>&gt; <br>&gt; lucky.nhtml<br>&gt; {: NES 1.0 ('lucky.pl') :}<br>&gt; {: $ number :}<br>&gt; <br>&gt; Y lo podemos insertar en cualquier página Web así:<br>&gt; <br>&gt; template.nhtml:<br>&gt; {: NES 1.0 script.pl :}<br>&gt; &lt;html&gt;<br>&gt;&nbsp;  &lt;head&gt;<br>&gt;&nbsp; &nbsp;  &lt;title&gt;Lo que sea&lt;/title&gt;<br>&gt;&nbsp;  &lt;/head&gt;<br>&gt;&nbsp;  &lt;body&gt;<br>&gt;&nbsp; &nbsp;  ...<br>&gt;&nbsp; &nbsp;  El número de la
 suerte es: &lt;b&gt;{: include lucky.nhtml :}&lt;/b&gt;<br>&gt;&nbsp; &nbsp;  ...<br>&gt;&nbsp;  &lt;/body&gt;<br>&gt; &lt;/html&gt;<br>&gt; <br>&gt; <a href="http://nes.sourceforge.net/miniblog/es/?item=Objetos" target="_blank">http://nes.sourceforge.net/miniblog/es/?item=Objetos</a><br>&gt; <br>&gt; 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:<br>&gt; <br>&gt; <a href="http://nes.sourceforge.net/miniblog/es/?item=Tag%20include%20%28file%29" target="_blank">http://nes.sourceforge.net/miniblog/es/?item=Tag%20include%20%28file%29</a><br>&gt; <a href="http://nes.sourceforge.net/miniblog/es/?item=Paradigma%20Nes" target="_blank">http://nes.sourceforge.net/miniblog/es/?item=Paradigma%20Nes</a><br>&gt; <a href="http://nes.sourceforge.net/miniblog/es/?item=Incluir%20PHP%20y%20otros"
 target="_blank">http://nes.sourceforge.net/miniblog/es/?item=Incluir%20PHP%20y%20otros</a><br>&gt; <br>&gt; 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.<br>&gt; <br>&gt; <a href="http://nes.sourceforge.net/miniblog/es/?item=Sintaxis%20de%20Nes" target="_blank">http://nes.sourceforge.net/miniblog/es/?item=Sintaxis%20de%20Nes</a><br>&gt; <a href="http://nes.sourceforge.net/miniblog/es/?item=La%20clase%20Singleton" target="_blank">http://nes.sourceforge.net/miniblog/es/?item=La%20clase%20Singleton</a><br>&gt; <br><br>Un par de cuestiones de estilo:<br><br>1) Singleton es un muy mal nombre para un paquete. Llamale Nes o Nes::Stash<br><br>2) nes tampoco es un buen nombre, los nombre en minusculas estan reservados para pragmas (strict,
 autodie, etc). Usa Nes o NES<br><br>3) Si tu clase realmente es un singleton, no necesitas el new, directamente tendrias que poder hacer<br><br>&nbsp; Nes::Stash-&gt;set(%datos);<br><br>por ejemplo asi<br><br>&nbsp; package Nes::Stash;<br><br>&nbsp; my $singleton;<br><br>&nbsp; sub set {<br>&nbsp; &nbsp; my $self = shift;<br>&nbsp; &nbsp; ref $self or $self = ($singleton ||= __PACKAGE__-&gt;_new);<br>&nbsp; &nbsp; $self-&gt;...<br>&nbsp; }<br><br>... pero claro solo si es un singleton de verdad, que con la estructura que tienes no tengo muy claro que lo sea!<br><br>- Salva<br>_______________________________________________<br>Madrid-pm mailing list<br><a ymailto="mailto:Madrid-pm@pm.org" href="mailto:Madrid-pm@pm.org">Madrid-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/madrid-pm" target="_blank">http://mail.pm.org/mailman/listinfo/madrid-pm</a></div></div>
</div><br>



      </body></html>