my @keys = ("a", "b", "c"); my @values = (1, 2, 3); my %hash; @hash{@keys} = @values; %hashが@hashと書かれていて、一瞬、アレ?そんなのアリ?と思ってしまいます。 これはハッシュスライスというものだそうです。 %hashの出力結果:'c' => 3, 'a' => 1, 'b' => 2
![[Perl] 2つ配列から1つのハッシュを作る方法 (ハッシュスライス) · DQNEO日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/8f7de7c0278993661a11fbc3637f96292ba773aa/height=288;version=1;width=512/http%3A%2F%2Fdqn.sakusakutto.jp%2Fimages%2Fkali.jpg)
XML::Simpleのコードを読んでいると以下の様な表現が頻繁に出てきました。問題は8行目なのですが、ハッシュをリストコンテキストで扱っているのですが、初めて見る表現で、調べるのにも少し手こずったのでメモしておきます。 #!/usr/bin/perl use Perl6::Say; use YAML; my @keys = qw(key1 key2); my @vals = qw(val1 val2); @dic{@keys} = @vals; # 問題の行 say Dump \%dic; # 出力は以下のようになります # --- # key1: val1 # key2: val2 結論から言えば、これはハッシュのスライスと呼ばれる表現で、配列のスライスと同様にハッシュの部分要素群を一度に扱う事ができます。上記の例では@が多数出てきて紛らわしいのですが、解り易く書くと以下のようになりま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く