next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Bucles sobre arrays Sup: Arrays y Listas Ant: Arrays y Listas Err: Si hallas una errata ...

Iterpolación de arrays en cadenas

Al igual que los escalares, los valores de un array son interpolados en las cadenas de comillas dobles. Los elementos son automáticamente separados mediante el separador de elementos de un array que es el valor guardado en la variable especial $". Esta variable contiene un espacio por defecto.

  DB<1> @a = 0..9
  DB<2> print "@a 10\n"
0 1 2 3 4 5 6 7 8 9 10
  DB<3> $email = "casiano@ull.es"
  DB<4> print $email
casiano.es
  DB<5> $email = 'casiano@ull.es'
  DB<6> print $email
casiano@ull.es
  DB<7> $email = "casiano\@ull.es"
  DB<8> print $email
casiano@ull.es

Un único elemento de un array es reemplazado por su valor. La expresión que aparece como índice es evaluada como una expresión normal, como si estuviera fuera de una cadena:

  DB<1> @a = 0..9
  DB<2> $i = 2
  DB<3> $x = "$a[1]"
  DB<4> p $x
1
  DB<5> $x = "$a[$i-1]"
  DB<6> p $x
1
  DB<7> $i = "2*4"
  DB<8> $x = "$a[$i-1]"
  DB<9> p $x
1

Ejercicio 1.7.1   ¿Cuál es la explicación para la salida de p $x en el último ejemplo?

Ejercicio 1.7.2  

Dado la siguiente sesión interactiva:

nereida:~/perl/src> perl -de 0
Default die handler restored.

Loading DB routines from perl5db.pl version 1.07
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1):   0
DB<1> @a = 1..5
DB<2> ($a[0], $a[1]) = undef
DB<3>  p "@a"
¿Cuál es la salida de la impresión que aparece al final de la secuencia de comandos?.


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Bucles sobre arrays Sup: Arrays y Listas Ant: Arrays y Listas Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21