array
, variables hash
, nombres de subrutinas, formatos, ficheros
y directorios.
Cada uno de estos objetos tiene su propio espacio de nombres.
Un cambio en el valor de uno de estos tipos de objetos no afecta en absoluto
el valor de otro objeto que tenga el mismo nombre. Por ejemplo, una modificación de la
variable escalar $a
no afecta a la variable array
con el mismo
nombre @a
. No siempre puede considerarse que es mal estilo de programación
el utilizar esta independencia en el espacio de nombres para dar a dos variables diferentes
el mismo nombre. Obsérvese el siguiente ejemplo:
#!/usr/bin/perl -w my $user = shift; $user = '.*' unless defined($user); my @user = grep {/$user/i } `cat /etc/passwd`; my @field; foreach $user (@user) { @field = split ':', $user; print "$field[0]\n"; }