Página 1 de 1

Sintaxis

NotaPublicado: 2012-10-25 06:04 @295
por silva
Agradecería si me pudiesen indicar qué significado tiene en Perl el uso de '__' (doble guion bajo).

Dado por ejemplo del uso de CGI::APPLICATION::PLUGIN::AUTHENTICATION, aparece lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
  1. CONSTRAINTS => { 
  2.        'user.username'  => '__USERNAME__', 
  3.        'acl.module'     => '__PARAM_1__', 
  4.  
  5.      } 


Mi pregunta es, dado por ejemplo '__USERNAME__', ¿Para qué se utiliza el __cadena__ ?

¡¡Gracias!!

Re: Sintaxis

NotaPublicado: 2012-10-25 09:26 @434
por explorer
Para nada.

Bueno... para algo sí sirven...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $var = '__NOMBRE__';       # Asignamos una cadena de caracteres a $var
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

En este caso, los guiones bajos son solo caracteres que forman parte de una cadena de caracteres mayor (la entrecomillada simple).

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $__DEPURADO__ = 'yes';     # Asignamos una cadena de caracteres a $__DEPURADO__
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

En este caso, los guiones bajos forman parte del nombre de la variable. Tradicionalmente, se considera que cuando una variable o función comienza por un guion bajo, es que de ser tratado como "muy personal", o "completamente privado dentro del módulo" donde está definido. Pero esto es solo una convención nuestra. A Perl le da lo mismo si vas a usar guiones bajos o no, mientras escribes bien los nombres de las variables.

Caso distinto es el uso del '_' (un solo guión bajo). Se utiliza para dos cosas (que yo ahora recuerde):
  1. Para "unir visualmente" un número grande:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
    1. $numeroGrande = 323_989_999_991;   # que es lo mismo que escribir
    2. $numeroGrande = 323989999991;      # pero éste, es más complicado de leer
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
    Y no solo para agrupaciones de tres dígitos:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
    my $contador_bcd = 0b0100_0001;    # activamos el puerto de E/S en escritura y encendemos el LED
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
  2. Cuando usamos la función stat() sobre un archivo para saber si es un archivo, directorio, un archivo de texto, si es legible o protegido contraescritura, la información del gestor de archivo abierto es almacenada en el gestor especial '_', que podemos usar en sucesivas llamadas a stat(), para ahorrar llamadas del sistema y accesos al sistema de archivos. Ejemplo:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
    1. print "Se puede hacer.\n" if -r $a || -w _ || -x _;  # comprobamos que el archivo $a se puede leer, escribir y ejecutar
    2.  
    3. stat($filename);                # Sacamos el estado del archivo $filename
    4. print "Legible\n"    if -r _;   # Extraemos información del archivo, pero sin tener que acceder otra vez a él
    5. print "Escribible\n" if -w _;
    6. print "Ejecutable\n" if -x _;
    7. print "Setuid\n"     if -u _;
    8. print "Setgid\n"     if -g _;
    9. print "Sticky bit\n" if -k _;
    10. print "Texto\n"      if -T _;
    11. print "Binario\n"    if -B _;
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Re: Sintaxis

NotaPublicado: 2012-11-19 15:09 @673
por danimera
Silva, estás usando CGI::Application, el complemento authentication, ¡ja,ja,ja! Ya pasé por lo mismo y pensaba que servían de algo ese: 'acl.module' => '__PARAM_1__', pero solo significa que cuando llamas la función algo como $selft->authen(__PARAM_1); algo así, no estoy seguro, es solo para indicar que el campo module de la table acl pues se verificará con el primer parámetro de la función...