[Perl] Alcance de las variables

En las entradas anteriores todos los ejemplos de variables tenían la sintaxis:

my $var = "value";

Pero el my es opcional, también se podría usar así:

$var = "value";

Sin embargo, el uso sin my creará variables globales a todo el programa, lo que es una mala práctica. La directiva my crea variables locales limitadas al bloque donde las definimos (delimitado entre llaves).

my $x = "lluvia";
my $condition = 1;
if ($condition) {
    my $y = "nieve";
    print $x;     # imprime "lluvia"
    print $y;     # imprime "nieve"
}
print $x;         # imprime "lluvia"
print $y;         # no imprime nada

Usar my en combinación con use strict; al inicio del script, hace que el intérprete capture algunos errores comunes. En este ejemplo, la última línea podría dar errores en tiempo de ejecución.


Imagen | Heidi Blanton en Flickr

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s