Akopia Akopia Services

[Date Prev][Date Next][Thread Prev][Thread Next][Interchange by date ][Interchange by thread ]

[ic] perl5.6.1 and eval hell?



We upgraded some dev machines to debian 5.6.1 perl
from 5.6.0 over the weekend.  There are some changes 
in perl that I've not really figured out but thought
a heads up might be in order.  Lots of our embedded 
perl refuses to run.

For example, my dumper script dies now.  It returns nothing.
If I run this I get HELLO WORLD but if I uncomment
#    push @OUT,$@ if($@);  Go figure.
I get nothing at all.  No error, a 1 byte return.
<(3861/1) Read error: cgi_headers: Success>


This page:
# dump.html
# rev 2000-12-21, cfm
[tag op=header]
Content-Type: text/plain
[/tag]
[raw]
{
    no strict 'refs';
    my(@OUT,$type);

    eval {
        for(keys %{*::}) {
            for $type (qw(CODE ARRAY HASH IO SCALAR)) {
                my($a);
               # $a = *$_{$type}; # 5.6.1 no go
                next unless $a;
                # push @OUT,"$_ \t${*::}{$_} $a\n"; # 5.6.1 no go
            }
        }
    };
    push @OUT,'HELLO WORLD';
#    push @OUT,$@ if($@);

    return join '<BR>',@OUT;
}
[/raw]

This minimalist raw perl tag:
UserTag raw     HasEndTag       1
UserTag raw     Interpolate     0
UserTag raw     Routine <<EOF
sub {
    my $str = eval {
        my $OUT=eval $_[0];
        return $OUT;
    };
    ::logGlobal($@) if($@);
    $str;
}
EOF

    
-- 

Christopher F. Miller, Publisher                             cfm@maine.com
MaineStreet Communications, Inc         208 Portland Road, Gray, ME  04039
1.207.657.5078                                       http://www.maine.com/
Content management, electronic commerce, internet integration, Debian linux


Search for: Match: Format: Sort by: