Я обнаружил, что Redmine.pm не предоставляет функцию DIR_MERGE для объединения объектов конфигурации. См. Подробности в разделе Создание и объединение объектов конфигурации руководства mod_perl
. Я упростил данный пример, потому что мне нужен только режим переопределения:
sub DIR_MERGE { merge(@_) }
sub merge {
my ($base, $add) = @_;
my %mrg = ();
for my $key (keys %$base, keys %$add) {
next if exists $mrg{$key};
# override mode
$mrg{$key} = $base->{$key} if exists $base->{$key};
$mrg{$key} = $add->{$key} if exists $add->{$key};
}
return bless \%mrg, ref($base);
}