2024年10月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ

 

« Windows Media Player V10で「アナログ著作権保護の問題が発生したため、この DVD は再生できません」がでてDVDが再生できない | トップページ | 今日買ってきた本 »

2006年11月30日 (木)

Perlを勉強中

ファイルに格納したJSON形式のデータを切り出して、XMLHttpRequestで受け取ることを考えている。
NiftyのホームページにCGIを置いて、そちらからデータを受け取る。(自宅サーバはまだ停止中だし、外部に公開したくない。しかもADSLだから、ADSLモデムを再起動するとIPは変わるし)

NiftyのCGIは、Perlかシェルを使えるが、シェルはまったく肌に合わないので、Perlを使用する。というわけで勉強中なのだが・・・。
Perlって、なんというのか、古き良き時代のハッカーが”俺様、天才”的考えで作り上げたって感じ。引数とか省略できることとか、変数の型(@,%,$を頭につけるところ)とか、そんなところが。

んで、CPANのJSONにある、{ }や[ ]は、ハッシュやリストらしいということはわかったのだが、手持ちの本ではハッシュは変数の頭に%を付ける、リストは変数の頭に@を付ける、データは( )で括るとあり、その違いはなんなのかわからなかった。eachやkeys、valuesでキーや値の一覧が取れないし。

なんとなくひらめいたので、”Perl オブジェクト”のキーワードでググッてみると、やはりオブジェクトみたいなものらしい。(まだ良くわかっていない)
オブジェクトにあるハッシュの値を取るには”->”を使う。例えば、CPANのJSONにある以下のデータは、

$obj = {
    id   => ["foo", "bar", { aa => 'bb'}],
    hoge => 'boge'
};

$obj->{id}[0];とやると"foo"が取れる。
$obj->{id}[2]->{aa};とやると"bb"が取れる。

でも、keysとかvaluesでは値が取れないので、どうやって何が入っているのか調べるのかは今のところ不明。オブジェクト指向ということで、見られないのか?でも、リストの数くらいわからないとあかんよな。

ちなみに、リストの値(idの中)は、以下のようにすると舐められる。(参考は、ここのHP

@e = $obj->{id};
for my $ref( @e ){
    for $ref2( @{$ref} ){
        print $ref2, "\n";
    }
}

なんか、複雑怪奇だな・・・。
あと、JSONモジュールのjsonToObj()に引数にファイルから読み込んだ(文字列の)JSONデータを入れても、ちゃんとオブジェクトになるようである。

« Windows Media Player V10で「アナログ著作権保護の問題が発生したため、この DVD は再生できません」がでてDVDが再生できない | トップページ | 今日買ってきた本 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Perlを勉強中:

« Windows Media Player V10で「アナログ著作権保護の問題が発生したため、この DVD は再生できません」がでてDVDが再生できない | トップページ | 今日買ってきた本 »