1. ホーム
  2. arrays

[解決済み] Perlで、与えられた配列をキーとするハッシュを作成するにはどうすればよいですか?

2023-06-08 20:11:49

質問

配列があり、多くの "配列に X が含まれているか?" をチェックすることになるとします。これを行う効率的な方法は、その配列をハッシュに変換し、キーが配列の要素になるようにします。

if($hash{X}) { ... }

この配列からハッシュへの変換を簡単に行う方法はないでしょうか?理想は、無名配列を受け取って無名ハッシュを返すような汎用性のあるものです。

どのように解決するのですか?

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

しかし、これらの解決策はハッシュと配列がすでにどこかで定義されている必要がありますが、これは匿名の配列を受け取り、匿名のハッシュを返すことができます。

これは配列の各要素を取り、それを"1"でペアにするものです。この (key, 1, key, 1, key 1) のペアのリストがハッシュに割り当てられると、奇数のものがハッシュのキーとなり、偶数のものがそれぞれの値となります。