NANOChatのMENTA化、その2

ほんの少し進んだ。 「入口」では、今現在滞在中のメンバーを出力するわけですが、そのデータはファイルに保存しておく必要があります。 ファイルの読み書きは標準のプラグイン「file.pl」にあるので、それを使ってデータをやり取りすれば良さそうです。 さっくりとソースを見ると、ファイルの中身は一度に読み書きしているようです。 MENTAではextlibにJSONが入っているので、そいつを使う事にします。 JSONを使うとオブジェクトを文字列に変換できるので、データを保存するのが非常に簡単になります。 昔は色々と考えながらデータを書いていましたが、そんな作業からも開放されました。 今までは割と標準モジュールしか使えないという縛りがありましたが、今後はそれもなくなりますね。 ま、とりあえず簡単にサンプルを書いてみました。

サンプルコード

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
use strict;
use warnings;
use JSON;
print $JSON::VERSION;
print "\n";
my $obj = {
    a => 1,
    b => [2, 3],
    c => {c1 => 4, c2 => 5},
    d => 6,
};
my $json_text = to_json($obj);
print $json_text;
print "\n";
my $r_obj = from_json($json_text);
use Data::Dumper;
print Dumper($r_obj);

実行結果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
4.02
{"b":[2,3],"a":1,"d":6,"c":{"c1":4,"c2":5}}
$VAR1 = {
          'a' => 1,
          'b' => [
                   2,
                   3
                 ],
          'c' => {
                   'c2' => 5,
                   'c1' => 4
                 },
          'd' => 6
        };

Comments

comments powered by Disqus