¿Que efecto tiene el siguiente código?:
@text = (1, 2, 3, 4, 5); @text[@text] = 0;¿En que contexto se interpreta el
array @text que aparece dentro del corchete? ¿Escalar o
lista?
Respuesta:
El array text entre corchetes es interpretado en un contexto de lista, pues no dice
$text[@text], dice @text[@text]. El resultado es un trozo con 5 elementos.
Por tanto dice:
@text[(1, 2, 3, 4, 5)] = 0.
Asi pues, text[0] permanece no modificado y es 1, text[1] es igualado a 0
y los restantes miembros quedan undef ya que la parte derecha es una lista que contiene
un sólo elemento.
lhp@nereida:~/Lperl/src$ perl -wde 0 main::(-e:1): 0 DB<1> @text = (1, 2, 3, 4, 5) DB<2> @text[@text] = 0 DB<3> x @text 0 1 1 0 2 undef 3 undef 4 undef 5 undef DB<4> @text = (1, 2, 3, 4, 5) DB<5> $text[@text] = 0 DB<6> x @text 0 1 1 2 2 3 3 4 4 5 5 0
Casiano Rodríguez León
