puedo crear una matriz con ranuras vacías '' en él:¿Cómo crear una matriz anónima ([]) con 'espacios vacíos'?
$ perl -wde 1
...
DB<1> $x[2] = 0
DB<2> x \@x
0 ARRAY(0x103d5768)
0 empty slot
1 empty slot
2 0
o
DB<3> $#y = 4
DB<4> x \@y
0 ARRAY(0x103d5718)
0 empty slot
1 empty slot
2 empty slot
3 empty slot
4 empty slot
Tenga en cuenta: esto no es lo mismo que asignar undef
.
Pero, ¿cómo especifico eso para una matriz anónima usando [
y ]
?
Esto no funcionará:
DB<5> x [,,0]
syntax error at (eval 27)[/usr/local/lib/perl5/5.10.0/perl5db.pl:638] line 2, near "[,"
Y esto también falla, ya que solo me dan el valor asignado:
DB<6> x []->[2] = 0
0 0
Bono pregunta: ¿Cómo puedo comprobar una 'ranura de matriz vacía' en mi script Perl?
Antecedentes: en mis scripts de prueba me gustaría poder comparar los contenidos de la matriz con precisión. Por ejemplo, quiero distinguir entre 'no asignado' y 'asignado con un valor undef'.
Gracias por cualquier idea.
Quieres decir cómo hacer una asignación directa a una matriz, usando '[]' para una matriz anónima, que tiene valores dentro de la matriz que devuelve falso cuando se prueba con 'exists'? – TLP
Sí. Siendo perezoso, sería bueno poder especificar esto en una declaración. De lo contrario, tengo que usar 'undef' o hacerlo en múltiples declaraciones. – hexcoder