perlの多次元配列の話
ご指摘感謝!
また,指摘を食らってしまった.
2次元配列をハッシュでごまかすことは知っていたのですが,配列的に書いたら期待通り動いたので,配列的な書き方でもいいのかと思ってました.
警告をつけないとダメですね.Haskellの時に言われたのに僕はw.これはaliasで指定しまくるしかないわ.もうコンパイラとか,ディフォで警告表示してくれw.
指摘のほうに戻ると,2つめのサンプルコードは多次元配列をサポートしてないという警告だと分かるのですが,1つ目のサンプルコードの動作が分からない.
perl -e '$a[0, 1] = 10; print $a[1], $/;' 10
なんで10なんだろ.いろいろ試してみたところ,下のような動き.
$ perl -w -e "$a[1, 2, 3] = 10; print $a[1], $a[2], $a[3];" Multidimensional syntax $a[1, 2, 3] not supported at -e line 1. Useless use of a constant in void context at -e line 1. Use of uninitialized value in print at -e line 1. Use of uninitialized value in print at -e line 1. 10
つまり,$a[1,2,3] = 10 は $a[3] = 10 として評価されている,ということでいいのかな.