next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Variables Dinámicas Sup: Subrutinas Ant: Tipo de objeto y Err: Si hallas una errata ...

Variables privadas

Una variable privada o variable léxica se declara usando el operador my:
sub min {
  my $a = shift; # igual que shift @_
  my $b = shift;
  ($a < $b)? $a : $b
}
Estas variables tienen como ámbito el bloque que las rodea. Cualesquiera otras variables $a y $b no se ven afectadas por los cambios que les hagamos a estas.

Observe que se ha suprimido el punto y coma de la última sentencia. Al igual que en Pascal, en perl es legal hacerlo asi.

Las variables léxicas pueden declararse en cualquier bloque, no es obligatorio que sea el bloque de una subrutina.

Si no esta dentro de ningún bloque, el ámbito de la variable será el fichero actual.

El operador my no implica ningún contexto en particular. Por ejemplo:

my ($num) = @_; # contexto de lista
my $num = @_; # contexto escalar

¿Que valores quedan almacenados en $num en cada caso?


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Variables Dinámicas Sup: Subrutinas Ant: Tipo de objeto y Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21