まず、html内の要素からデータを取得して配列化しようとしたんです。
なんでそんなことするかって言うと、
AjaxのXHRでページ読み込んだ時、JavaScript自身は再読込みされないので、
htmlのinputのhiddenのvalueにデータをセットして、
そこを可変的にして読み込むことで、対応しようとした訳です。
んで、Perlの多次元配列をData::Dumperで整形かけて、
そのデータ文字列をJavaScriptに渡して使おうとしたのです。
じゃあそれをどうやってJavaScriptで配列に戻すの?
ってなったらJSONが使えるな、と思ったわけですよ。
で、色々実験したらかなり面倒だったって話です。
結論から言うとJSON.parseで文字列を配列に出来るわけなんですが、
これがメチャクチャ厳密に書かないといけないんです。
evalに逃げようかと思ったんですが、危険危険でやっぱり怖い。
んで、かなり頑張って多次元配列文字列をなんとか格納できました。
1.文字列要素は必ずダブルクォーテーションで囲む
シングルクォーテーションは許容されない
2.要素末尾のカンマは許容されない
3.空白は無視される(つまり詰めれば良し)
4.多次元配列の文字列形式は以下の通り
[["a","b","c"],["d","e","f"]]
上記形式の値を変数に入れた場合はそのまま、
検証時等で文字列をそのままparseする場合は
全体をシングルクォーテーションで囲む必要がある
5.inputのvalue値とする時は、値をシングルクォテーションで囲むしかない
JSON使っている人からすれば当たり前なのかもしれませんが、
JS本体やperl等に比べるとかなり厳密です。
少し狂っただけでも絶対許容されません。
まぁプログラムのあり方としては正しいとは思います。
ただ、かなり検証が面倒だったので疲れました。
同じような事する人は多分最低一回はエラー吐かれると思います。
根気よく検証すれば出来ると思うので頑張りましょう。
JS側でサンプル配列作ってJSONの文字列化(stringify)して、
比較して形式が一致するかとか、
アラートに入れて期待通りの文字列になってるかとか確認しましょう。
とりあえずevalは遅いし危険らしいし、
JSON.parseはVanillaJSで早いし安全だし、
なるべくJSON.parseを使うようにしましょう。