mogę utworzyć tablicę z „pustych gniazd” w nim:Jak utworzyć anonimową tablicę ([]) z "pustymi gniazdami"?
$ perl -wde 1
...
DB<1> $x[2] = 0
DB<2> x \@x
0 ARRAY(0x103d5768)
0 empty slot
1 empty slot
2 0
lub
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
Uwaga: to nie jest taka sama jak przypisywanie undef
.
Ale jak to określić dla anonimowej tablicy przy użyciu [
i ]
?
To nie zadziała:
DB<5> x [,,0]
syntax error at (eval 27)[/usr/local/lib/perl5/5.10.0/perl5db.pl:638] line 2, near "[,"
I to nie zbyt, bo tylko dostać przypisaną wartość:
DB<6> x []->[2] = 0
0 0
Bonus pytanie: w jaki sposób mogę sprawdzić na 'gniazda pustą tablicę' w moim skrypcie Perla?
Tło: W moich skryptach testowych chciałbym móc dokładnie porównać zawartość tablicy. Na przykład chcę odróżnić "nieprzypisane" i "przypisane wartością niezdefiniowaną".
Dzięki za wszelkie spostrzeżenia.
To znaczy, jak to zrobić bezpośrednie przypisanie do tablicy, korzystając '[]' dla anonimowej tablicy, posiadającej wartości wewnątrz tablicy, które zwracają fałsz podczas testowania z 'exist'? – TLP
Tak. Będąc leniwym, byłoby miło móc to określić w jednym komunikacie. W przeciwnym razie muszę użyć "undef" lub zrobić to w wielu instrukcjach. – hexcoder