'空のスロット'を含む配列を作成できます。
$ perl -wde 1
...
DB<1> $x[2] = 0
DB<2> x \@x
0 ARRAY(0x103d5768)
0 empty slot
1 empty slot
2 0
また
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
注意:これは、を割り当てることと同じではありませんundef
。
[
しかし、とを使用して匿名配列にそれを指定するにはどうすればよい]
ですか?
これは機能しません:
DB<5> x [,,0]
syntax error at (eval 27)[/usr/local/lib/perl5/5.10.0/perl5db.pl:638] line 2, near "[,"
そして、これも失敗します。割り当てられた値しか取得できないためです。
DB<6> x []->[2] = 0
0 0
ボーナスの質問:Perlスクリプトで「空の配列スロット」を確認するにはどうすればよいですか?
背景:私のテストスクリプトでは、配列の内容を正確に比較できるようにしたいと思います。たとえば、「割り当てられていない」と「undef値で割り当てられている」を区別したいと思います。
洞察をありがとう。