At 1:04 AM -0800 3/25/03, Michael G Schwern wrote:
>This is odd:
>
>$ perl -wle "require Pod::Man;  print $@"
>
>$ perl -wle "eval 'require Pod::Man';  print $@"
>Pod/Man.pm did not return a true value at (eval 1) line 3.
>
>$ perl -v
>
>This is perl, v5.8.0 built for VMS_AXP
>
>
>Pod::Man doesn't have an explicit true value at the end.  I've seen this
>with other modules.  Why is the behavior different when its eval'd?
>
>I only see this behavior on VMS.

% perl -wle 'eval "require Pod::Man";  print $@'
Pod/Man.pm did not return a true value at (eval 1) line 3.

% perl -v

This is perl, v5.8.0 built for darwin

The difference is Perl 5.6.x (which does not complain) and Perl
5.8.x, which does complain, regardless of platform.

I've been rooting around in pp_ctl.c, specifically pp_entereval and
pp_leaveeval, and I'm in way over my head.  However, it does look
like pp_entereval initializes the the "gimme" variable, sticks it
into the context via the PUSHBLOCK macro, and then nothing ever
changes it before pp_leaveeval fetches it out again.  But I'm very
likely missing something in one of those byzantine macros and if this
is a bug I don't think I'll be the one to fix it.

-- 
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to