CC: | DAGOLDEN [...] cpan.org |
Subject: | Fails with Scalar::Util < 1.18 |
Many 5.8.x perls come with Scalar::Util 1.14. YAML::Tiny treats all
Scalar::Util below 1.18 specially, but this special treatment has a bug.
Seems to stem from some refacturing activity. It should be obvious that
this is not what the writer intended. The local definition of refaddr is
only provided if the require Scalar::Util failed, leaving users of
Scalar::Util < 1.18 without a local definition.
Sample fail report:
http://www.cpantesters.org/cpan/report/40dccf6a-5237-11e1-b206-573d9aeef8c6
The reason why my smoker never discovered it was that I had them all
upgraded to a higher Scalar::Util. I built three new perls today,
5.8.{5,6,7} and for each of them sent two fail reports, one for
YAML::Tiny and one for CPAN::Meta::YAML.
YAML-Tiny-1.50-ANDK-01.patch has the fix.
@David: I won't report it to C:M:Y separately unless you want me to.
Cheers,
Subject: | YAML-Tiny-1.50-ANDK-01.patch |
--- /home/sand/.cpan/build/YAML-Tiny-1.50-EWq1CA~/lib/YAML/Tiny.pm 2011-06-23 10:19:24.000000000 +0200
+++ /home/sand/.cpan/build/YAML-Tiny-1.50-EWq1CA/lib/YAML/Tiny.pm 2012-02-08 16:08:00.720938457 +0100
@@ -614,7 +614,7 @@
require Scalar::Util;
};
if ( $@ or $Scalar::Util::VERSION < 1.18 ) {
- eval <<'END_PERL' if $@;
+ eval <<'END_PERL';
# Scalar::Util failed to load or too old
sub refaddr {
my $pkg = ref($_[0]) or return undef;