>>442 水を差すようで悪いけど、出力にRubyのリテラルのような複雑な文法を
持ち込んだり、入力を読むところで複雑なことをするのもお勧めできないなあ。
入出力部と集計部やperlスクリプトとの依存性が高くてコードの変更が面倒になるよ。
それにファイルフォーマットを考えるのは難しいから考えないで済む方法がいい。
例えばワークシート毎に1ファイルにして、各行をタブ区切り(TSV)で出すのはどう?
TSVなら吐くのも簡単だしRubyからは次のように読めるしね。
for fn in filenames
data[fn] = open(fn).read.map{|i| i.chomp.split(/\t/)}
end
data["fx"][9].indices[23,31] ##=> ファイルfxの10行目の24,32カラムめの値
ハッシュリテラルで書くと簡単に見えるかも知れないけど、仕様の固まってない
ネストしたデータ構造のアクセス手段を作るのは多次元配列のとたいして変わらない。
どっちの方法も仕様の変更を吸収するところがどこかで必要になるからね。
それとxmlがガッチリというのは間違った認識かも。マーシャルの一形式と思えばいい。
パーザを書かなくて済むのも大きな利点じゃない?xmlといってもいろいろあるよ。