サブルーチンの名前付きパラメータでデフォルト値を用意する方法
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);は等価であることが確認できた。