Una lista de expresiónes entre corchetes como:
[ 'e1', 'e2', 'e3'];se denomina array anónimo. La expresión devuelve una referencia a un
array
con esos elementos. Así es posible
asignarlo a una variable escalar:
$rb = [ 'e1', 'e2', 'e3'];Observe el uso de corchetes en vez de paréntesis. Aqui el array no tiene nombre, quien tiene nombre es la referencia. Por supuesto,
@$rb
denota al array referido.
Lo mismo puede hacerse con los hash
es.
en vez de corchetes se usan llaves:
$association = { cat =>"nap", dog=>"gone", mouse=>"ball"}; print "When I say 'cat', you say ...",$association->{cat};
En este caso se dice que tenemos un hash anónimo.
También puede hacerse con las subrutinas. Para tener una subrutina anónima basta con suprimir el nombre de la subrutina:
$subref = sub { my $x = shift; $x*$x; };
$rb = ( 'e1', 'e2', 'e3');¿Que contiene
$rb
?
$association = ( cat =>"nap", dog=>"gone", mouse=>"ball"); print "When I say 'cat', you say ...",$association->{cat};¿Que contiene
$association
?
$association = [ cat =>"nap", dog=>"gone", mouse=>"ball"]; $a = { @$association }->{mouse};
DB<1> opendir D,'./' DB<2> @n = readdir D DB<3> @nd = map { {N=>$_, D=>-M $_}} @n DB<4> @snd = sort { $b->{D} <=> $a->{D} } @nd DB<5> @sn = map { $_->{N} } @sndRecuerde que
-M
retorna el tiempo desde la última modificación
en días.