2008/7/8 Reini Urban: > 2008/7/8 Gary R. Van Sickle: >> Hi Reini, >> >> It looks like something changed between perl 5.10.0-4 and -5 which breaks >> the DateTime module from CPAN (version 0.4302, latest). The attached Simple >> Test Case(tm) results in only the following errors: >> >> Use of uninitialized value $id in pattern match (m//) at >> /usr/lib/perl5/site_perl/5.10/DateTime/Locale.pm line 65. > > Bad side-effect with a third party module in site_perl. > Strange that I didn't see this in my tests, because I tested over > thousand CPAN modules with this release. > Oh, I see, I reported that it failed on June 5. > > $ cpan DateTime > requires DateTime::Locale > > DateTime::Locale cannot be installed because of this error, > but since you upgraded perl we have to fix DateTime::Locale now. > > Oops. This seems to affect more modules. > Params::Validate with type => SCALAR seems to be broken. > http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Params%3A%3AValidate > > I have to go now, but will provide a patch soon. > As workaround I would disable the validation in DateTime::Locale::_register > but this also doesn't work as expected. > > if (! defined $p{id} or !$id) { > # cygperl5 error in Params::Validate? > #warn "Broken Params::Validate. Given ".join(",",@_); > $p{id} = $_[0]; > $p{en_language} = $_[1]; > my @keys = qw(en_script en_territory en_variant native_language > native_script native_territory native_variant class replace); > for my $i (2 .. @_) { > $p{$keys[$i]} = $_[$i]; > } > }
Update on this issue: As you can see, there's only one machine with this error, which is my laptop. http://cpantesters.perl.org/show/DateTime-Locale.html#DateTime-Locale-0.4001 My normal devel machine passed the DateTime::Locale test, which is weird. I also pass the Params::Validate test on my laptop, which is weirder, because this fails for DateTime::Locale on my laptop. Anyway, until I find out the differences between my laptop and my devel machine, the short summary: Params::Validate fails in an BEGIN block, in a type => SCALAR check only on certain machines with 5.10.0 patch 34065 on Cygwin. (Tested only release and patch 34065). Reproducible with DateTime::Locale. Within the debugger everything works ok. (Probably because of the BEGIN block) The other DateTime::Locale reports show no clue. There's a Darwin report on the same patchlevel which passed. Within DateTime-Locale-0.4001 after make even perl -Mblib -cw t/01basic.t fails with the same errors. Moving the register call from BEGIN to INIT also does not help. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/