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