En el siguiente ejemplo observamos la acción del operador \
en una posible situación ambigua:
DB<1> @a = (\(1, 0, 0), \(0, 1, 0), \(0, 0, 1)) DB<2> p @{$a[1]} Not an ARRAY reference at (eval 17)[/usr/share/perl/5.6.1/perl5db.pl:1521] line 2.No se trata por tanto que produzca referencias a cada uno de los vectores. En realidad
@a
contiene un vector de referencias a los elementos individuales:
DB<3> x @a 0 SCALAR(0x8450d74) -> 1 1 SCALAR(0x81046f4) -> 0 2 SCALAR(0x8450dc8) -> 0 3 SCALAR(0x8461ccc) -> 0 4 SCALAR(0x846cd28) -> 1 5 SCALAR(0x8461c9c) -> 0 6 SCALAR(0x8461a68) -> 0 7 SCALAR(0x84619d8) -> 0 8 SCALAR(0x84619cc) -> 1Primero
\
actúa sobre la sublista. Luego las
sublistas se aplanan.
Vea el ejemplo:
DB<1> @a = ((1, 0, 0), (0, 1, 0), (0, 0, 1)) DB<2> x @a 0 1 1 0 2 0 3 0 4 1 5 0 6 0 7 0 8 1 DB<3> @a = (scalar(1, 0, 0), scalar(0, 1, 0), scalar(0, 0, 1)) DB<4> x @a 0 0 1 0 2 1
Casiano Rodríguez León