• Publicidad

Sintaxis

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Sintaxis

Notapor silva » 2012-10-25 06:04 @295

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!!
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Publicidad

Re: Sintaxis

Notapor explorer » 2012-10-25 09:26 @434

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
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Sintaxis

Notapor danimera » 2012-11-19 15:09 @673

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...
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados