The intent of %versionEdits was that it would only contain the edits that you want to be reported. I don't know how you are obtaining the version change information that you were using to populate $UpdatedMinor etc so I can't advise on how best to populate %versionEdits. If you have an original version number and a current version number you could do something like:
my @valueNames = qw/major minor revision/;
my @versions = (
[qw(aht 8.3.6 9.4.0)],
[qw(dog 3.3.1 3.3.2)],
);
for my $version (@versions) {
my ($app, $oldStr, $newStr) = @$version;
my %old;
my %new;
@old{@valueNames} = split /\./, $oldStr;
@new{@valueNames} = split /\./, $newStr;
for my $name (@valueNames) {
$oldVersions{$app}{$name} = $old{$name};
next if $new{$name} == $old{$name};
$versionEdits{$app}{$name} = $new{$name};
}
}
Perl reduces RSI - it saves typing
|