{: ~ (expresión) HTML :}

Descripción

El bloque se sustituye por "HTML" si expresión resulta cierto.

Expresión puede ser cualquier expresión Perl válida, incluidas expresiones regulares Perl, la variable sólo pueden ser una variable $, de entorno *, o un literal:

{: ~ ( $ variable =~ /hola/ ) <p>La variable nos saluda</p> :}
{: ~ ( * variable ) <p>La variable está definida</p> :}
{: ~ ( ! * variable ) <p>La variable no está definida</p> :}

Las expresiones que tengan como resultado la asignación de una variable, devolverán cierto o falso pero la asignación no tendrá efecto:

{: ~ ( $ variable = 1 ) <p>La variable NO cambia de valor</p> :}

Inclusión y anidamiento

Los parámetros no permiten la inclusión:

 
{: ~ ( '{: $ var :}' ) <p>html</p> :}  <- ERROR

Se permite la inclusión y anidamiento de bloques:

 
 {: ~ ( $ monton )  {: # Los comentarios siempre se pueden incluir :}
      Un montón de HTML...
      ... 
      {: ~ ( $ opcion eq 'a' ) 
             {: include ('archivo_a.html') :}
      :}
      {: ~ ( $ opcion eq 'b' ) 
             {: include ('archivo_b.html') :}

      :}
      ...
 :}

Ejemplo

archivo.nhtml:

{: NES 1.0 ('archivo.pl') :}
<html>
  <head>
    <title>Nes sample/title>
  </head>
  <body>
    <b>{: ~ $variable <p>la variable está definia</p> :}</b>
  </body>
</html>

archivo.pl:
   
use Nes;

my $nes = Nes::Singleton->new('archivo.nhtml');

my $nes_tags = {};

$nes_tags->{'variable'} = 1;

$nes->out(%$nes_tags);

Salida:
   
la variable está definia