{{tag> note:perl hash}} ---json { "title":"連想配列(ハッシュ)", "description":"連想配列(ハッシュ)" } --- \\ ==== 連想配列(ハッシュ) ==== \\ 連想配列はkey(名前)とvalue(値)のペアで保存するような変数で、通常のスカラ(変数)とは違った使い方ができるのでとても重宝します。\\ ただ、注意すべき点として、keyとなる部分は、文字コードで管理されているのではないか?ということ。これは、\\ $hash->{'ABC'} = 1; $hash->{'abc'} = 2; $hash->{'AbC'} = 3; などとしたとき、大文字小文字まで区別されているため、大文字で入力するものが、小文字で入力していると、想定と違う値や未定義値が返るという恐ろしい現象が起こります。\\ これって、起動時に 'hashkey_case_insensitive' なんていうパラメータがあれば便利かなって思うのですが、たぶんこの辺りのモジュールがあるのかもしれませんが、探す暇もなく・・・。\\ Perlのオブジェクトでは、オブジェクトとなる変数($self)にぶら下げる属性を全て連想配列で行うので、キーの名前にキャメルケースで {'sendAndWait'} なんて定義したら、原因が特定しにくいので間違いなく地獄行きですが、もしかすると、キー名には大文字か小文字のどちらかに限定してスネークケースで {'SEND_AND_WAIT'} のように定義するような暗黙の決まりがあるのかも? ~~DISCUSSION~~