Práctica: Indexación

Escriba un programa que lea una lista de números (entre 1 y 26) e imprima las letras mayúsculas correspondientes a esos números. Por ejemplo, si los números son 1, 2, 4 y 2 la salida será A B D B.

NOTA: Use el operador .. para construir un vector con las letras:

@a = 'A'..'Z' # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
La siguiente sesión con el depurador muestra algunos de los problemas que pueden surgir asi como algunas de las posibles soluciones:
lhp@nereida:~/Lperl/src$ perl -wde 0
main::(-e:1):   0
  DB<1> !!cat prueba1.txt
12
23
3
4
2
1
  DB<2> open $F, "prueba1.txt"
  DB<3> @a = <$F>
  DB<4> @L = 'A'..'Z'
  DB<5> x @L[@a] # Mmm... no es exactamente lo que queremos
0  'M'
1  'X'
2  'D'
3  'E'
4  'C'
5  'B'
  DB<6> p scalar(@L)
26
  DB<7> @L[1..26] = 'A'..'Z'
  DB<8> x @L[@a]
0  'L'
1  'W'
2  'C'
3  'D'
4  'B'
5  'A'
Explique la siguiente conducta del depurador:
main::(-e:1): 0
  DB<1> print (undef, 'A'..'Z')[@ARGV] 
syntax error at (eval 5)[/opt/local/lib/perl5/5.8.9/perl5db.pl:638] line 2, near ")["
  DB<2> print ((undef, 'A'..'Z')[@ARGV])
DCBA

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19