― Web Technology and Life ―

Perl関数のmapで配列からハッシュを作る方法

2011-04-06
今までPerlで配列からハッシュを作るときは、for文とかwhile文を使っていたのですが、ふと、mapできれいにつくれるのでは?とぐぐったらできることが判明したのでそのメモ。

mapを使わないいけてない方法

こんな感じで、最初にハッシュとかハッシュリファレンスを宣言してループ文を使って書く。

my @array = qw/hoge moge foga hoge/;

my %hash;
for (@array){
    $hash{$_} = 1;
}

mapを使ったいけてる方法

ループ文を書くことなく、さらにmapの仕様による高速作成。く

my @array = qw/hoge moge foga hoge/;

my %hash = map { $_ => 1 } @array;

まとめ

配列のデータをユニークにするときは、List::MoreUtilのuniqとかを使えばいいけど、とりあえず、ハッシュでデータを操作したいけど、デフォルト値で既存の配列データをハッシュキーに入れておきたいときにすっきりかけるから結構便利だと思いました。
参考:Perlで配列を簡単にハッシュにする方法

Perl update_at : 2011-04-06T05:42:13
hirobanex.netの更新情報の取得
 RSSリーダーで購読する   
blog comments powered by Disqus