ハッシュのスライス
スライス自体使わなかったから、いざ使ってるコード見たら、やってることは分かるが、何で実現できるのか理解できなかった罠。
use strict; use Data::Dumper; use constant CONST => qw/one two thr/; my %type; @type{+CONST} = ('const') x CONST; print Dumper \%type;
$VAR1 = { 'one' => 'const', 'thr' => 'const', 'two' => 'const' };
変数名が適切じゃないとかは置いといて。CONSTは配列。typeはハッシュ。
左辺:@typeと、シジルを@にしてやってるのでリストコンテキスト。CONSTが展開される。(スライスだから)
右辺:('const')は要素1のリスト、x演算子で、それにCONSTの要素数をかけてやる。
結果、CONSTの要素をキーに持ち、'const'をバリューに持つハッシュの出来上がり。
自分がこういうことをやれと言われたら、mapで書いてただろうか。