PaulHowarth/Blog/2009-06-05

Friday 5th June 2009

Local Packages

Finally got round to making perl-PPI 1.203 build successfully across all of my supported releases. On Red Hat Linux 9 and Red Hat Enterprise Linux 3 it was failing multiple tests with "Can't use an undefined value as an ARRAY reference" errors like in this test case. This appears to be a bug in perl 5.8.0, or at least the Red Hat version of it, and I was able to fix it with this patch:

--- PPI-1.203/lib/PPI/Lexer.pm  2008-05-14 05:14:00.000000000 +0100
+++ PPI-1.203/lib/PPI/Lexer.pm  2009-06-05 15:39:19.000000000 +0100
@@ -278,7 +278,7 @@
        # Checking once at the end is faster than adding a special
        # case check for every statement parsed.
        my $v6 = $self->{Tokenizer}->{v6};
-       if ( @$v6 ) {
+       if ( defined($v6) && @$v6 ) {
                my $includes = $Document->find( 'PPI::Statement::Include::Perl6' );
                foreach my $include ( @$includes ) {
                        unless ( @$v6 ) {

On Fedora Core 3 and 4, the 14_charsets.t test just got stuck in an infinite loop gobbling up memory as per CPAN RT#35917, which was easily fixed by updating the test to the one in the 1.204_02 developer release, which simply skips the test on perls older than 5.8.7.


Recent