Commit
c2ab755698db245898a4cc89149eb5df256e4bd0 added an unconditional
use of Data::Dumper’s Sortkeys method, which was added in version
2.12_01 of that module. In terms of Perl versions, it is available in
5.8.x and later, and in 5.6.2, but not in 5.6.1 or earlier. At the
time, our minimum Perl version was 5.10, but we lowered it to 5.6.0
again in
05e295b60cfdf378b7ed8c1f8563a5644d5d4689. It seems that
commit was not actually tested with 5.6.1 or earlier.
As we are only using Sortkeys to facilitate manual comparison of
autom4te.cache/requests files, we can just ignore the method lookup
failure with 5.6.[01] and everything will work fine without it.
Tested on x86_64-unknown-netbsd9.3 with perl 5.6.1.
* lib/Autom4te/C4che.pm (marshall): Ignore method lookup failure for
Data::Dumper::Sortkeys with very old perl.
* lib/Autom4te/Request.pm (marshall): Likewise.
sub marshall ($)
{
my ($caller) = @_;
- my $res = '';
my $marshall = Data::Dumper->new ([\@request], [qw (*request)]);
- $marshall->Indent(2)->Terse(0)->Sortkeys(1);
- $res = $marshall->Dump . "\n";
+ $marshall->Indent(2)->Terse(0);
- return $res;
+ # The Sortkeys method was added in Data::Dumper 2.12_01, so it is
+ # available in 5.8.x and 5.6.2 but not in 5.6.1 or earlier.
+ # Ignore failure of method lookup.
+ eval { $marshall->Sortkeys(1); };
+
+ return $marshall->Dump . "\n";
}
sub marshall($)
{
my ($caller) = @_;
- my $res = '';
# CALLER is an object: instance method.
my $marshall = Data::Dumper->new ([$caller]);
- $marshall->Indent(2)->Terse(0)->Sortkeys(1);
- $res = $marshall->Dump . "\n";
+ $marshall->Indent(2)->Terse(0);
- return $res;
+ # The Sortkeys method was added in Data::Dumper 2.12_01, so it is
+ # available in 5.8.x and 5.6.2 but not in 5.6.1 or earlier.
+ # Ignore failure of method lookup.
+ eval { $marshall->Sortkeys(1); };
+
+ return $marshall->Dump . "\n";
}