[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