連想配列(ハッシュ)


連想配列(ハッシュ)


連想配列はkey(名前)とvalue(値)のペアで保存するような変数で、通常のスカラ(変数)とは違った使い方ができるのでとても重宝します。
ただ、注意すべき点として、keyとなる部分は、文字コードで管理されているのではないか?ということ。これは、

$hash->{'ABC'} = 1;
$hash->{'abc'} = 2;
$hash->{'AbC'} = 3;

などとしたとき、大文字小文字まで区別されているため、大文字で入力するものが、小文字で入力していると、想定と違う値や未定義値が返るという恐ろしい現象が起こります。

これって、起動時に 'hashkey_case_insensitive' なんていうパラメータがあれば便利かなって思うのですが、たぶんこの辺りのモジュールがあるのかもしれませんが、探す暇もなく・・・。

Perlのオブジェクトでは、オブジェクトとなる変数(self)にぶら下げる属性を全て連想配列で行うので、キーの名前にキャメルケースで

{'sendAndWait'}

なんて定義したら、原因が特定しにくいので間違いなく地獄行きですが、もしかすると、キー名には大文字か小文字のどちらかに限定してスネークケースで

{'SEND_AND_WAIT'}

のように定義するような暗黙の決まりがあるのかも?

Task Runner