サブルーチンの名前付きパラメータでデフォルト値を用意する方法
2023/03/15 21:17
@param { keys %input } = values %input;を使っていたが、別の方法もあったと記憶していたので、簡単に確認した。
ソース
use strict; use warnings; use Data::Dumper; my %default = ( a => 100, b => 101, c => 102, d => 103, ); print Dumper \%default; my %param = ( a => 200, c => 201, ); print Dumper \%param; %param = (%default, %param); print Dumper \%param;
実行結果
$VAR1 = { 'c' => 102, 'd' => 103, 'a' => 100, 'b' => 101 }; $VAR1 = { 'a' => 200, 'c' => 201 }; $VAR1 = { 'b' => 101, 'a' => 200, 'c' => 201, 'd' => 103 };
この書籍のコードのような、ハッシュB の内容でハッシュA を上書きするような使い方では、
my %param = (...); ... @param { keys %input } = values %input;と
my %param = (...); ... %param = (%param, %input);は等価であることが確認できた。