[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:17964] Re: perl



小野@名古屋大学 です.

<20030303.105245.74730136.yossi@yedo.src.co.jp>の記事において
yossi@yedo.src.co.jpさんは書きました。
yossi> perl で迷うのは、殆ど同じのように見えるのに
yossi>  $abc{"aaa"}{"xyz"}="aaa";
これは (初期化だと仮定すると)
%abc = (
     aaa => { xyz => "aaa" }
);
の意味で (ハッシュに %abc という名前を付ける),

yossi>  $abc={
yossi>      aaa => { xyz=> "aaa",},
yossi>  };
はそのものの意味 (無名ハッシュとしてアクセスする) ですから

yossi> が違うのです。
意味はともかく構文は違って当然です.
# $abc = \%abc; ってやると結果的に同じになりますが.

yossi> この違いを「らくだ」からは読めませんでした。
ん〜, $abc{aaa} が「ハッシュ %abc のキー "aaa" に対応する要素」っ
てのはありませんでしたっけ?

yossi> 利用目的からはどちらでも良いのですが、「aaa => { xyz=> "aaa",}」の
yossi> 方が内容を理解しやすいようにおもいます。
ハッシュそのものに名前を付けるか, 無名ハッシュを (一種の) ポイン
タとしてアクセスするかの違いですから, どっちがいいかによります.
# ハッシュを再帰的な構造として使うなら後者の方がプログラムが簡単
# になるかな.
-- 
名古屋大学 工学部 電子情報学科 平田研究室
小野 孝男

Follow-Ups
[plamo:17970] Re: perl, 早間義博
References
[plamo:17958] Re: perl, 早間義博

[検索ページ] [メール一覧]
Plamo ML 公開システム