読者です 読者をやめる 読者になる 読者になる

アルパカDiary Pro

はてなブログProではありません

初めてのPerlを読み返す 5章 ハッシュ

初めてのPerl
初めてのPerl
posted with amazlet at 09.04.05
ランダル・L. シュワルツ トム フェニックス
オライリージャパン
売り上げランキング: 34126


この記事のスタンスはこちら

5章 ハッシュ*1

  • スカラーのキーは自動的に文字列に変換される。キーを「50/20」として使おうとすると「"2.5"」という文字列のキーになる。
  • 存在しないキーを指定すると「undef」を得られる。
  • ハッシュ全体を表す変数には「%」を先頭の文字にする。
  • リストコンテキストのハッシュ値は、キーと値のペアを表すリストになる。
%hash = ("key1", "value1", "key2", "value2");
@array = %hash;  # 上記のリストを得られる。ただし、順番通りとは限らない!
  • ハッシュからリストに戻すことを「ハッシュをほどく」という。
  • ハッシュからハッシュのコピーはちょっと重いかも。
%new_hash = %old_hash;
  • 「reverse」関数は、キーと値のペアを逆転させる。
  • ハッシュの代入は太い矢印を使う事も出来る。
%hash = (
 "key1" => "value1", 
 "key2" => "value2",
);
  • 「keys」関数はキーのリストを返す。「values」演算子は値のリストを返す。またスカラーコンテキストにすると件数を返す。
@keyarray = keys %hash;
@valarray = values %hash;
  • 「each」関数はハッシュ全体の繰り返しを行う。
while( ($key,$value) = each %hash ){
  print "$key => $value\n";
}
  • 「sort」でキーソートすれば順番通りに並ぶ。
  • 「exists」関数はハッシュのキーの存在チェックを行う。値が真か偽かは問わない。
  • 「delete」関数でキー(値)を削除。元々存在してなくてもOK。


ハッシュが元々リストだなんて知りませんでした…
勉強になるなぁ

*1:以下引用をいくつか含みます