История изменений
Исправление disarmer, (текущая версия) :
sub hash_merge{
map {ref $_ eq 'HASH' or return warn "This is not hashref!"} @_;
my ($h1,$h2)=@_;
local %_=%{$h1};
@_{keys %$h2} = values %$h2;
#say Dumper \%_;
while(my($k,$v)=each %$h1){
if(ref $v eq 'HASH'){
$_{$k}=&hash_merge($v,$h2->{$k}) if exists $h2->{$k};
}
}
return \%_;
}
Исходная версия disarmer, :
sub hash_merge{
map {ref $_ eq 'HASH' or return warn "This is not hashref!"} @_;
my ($h1,$h2)=@_;
local %_=%{$h1};
@_{keys %$h2} = values %$h2;
#say Dumper \%_;
while(my($k,$v)=each %$h1){
if(ref $v eq 'HASH'){
$_{$k}=&hash_merge($v,$h2->{$k}) if exists $h2->{$k};
}
}
return \%_;
}