WC -Sx- Jones wrote:

> James Edward Gray II wrote:
> > Note that ALL warnings are explicitly disabled and the program is no
> > longer printing the error messages yet the strange messages remain.
> > Also note that the program does reach the final print.
> >
> > Those messages are fatal errors that just don't happen to kill the
> > program here, since they happen inside an eval().  They are being
> > trapped, but we are still being notified (incorrectly).  If they were
> > lines in a normal script, it would not run.
> >
> > That looks like a bug to me.  I just wanted to make sure I wasn't
> > missing something before submitting it.  What do others think?
>
> :)
>
> IIRC this was discussed and cussed about around 1997 in
> comp.lang.perl.misc...
>
> At any rate -
>
> perldoc -f eval
>
>               If there is a syntax error or runtime error, or a
>               "die" statement is executed, an undefined value is
>               returned by "eval", and $@ is set to the error
>               message.  If there was no error, $@ is guaranteed to
>               be a null string.  Beware that using "eval" neither
>               silences perl from printing warnings to STDERR, nor
>               does it stuff the text of warning messages into [EMAIL PROTECTED]
>               To do either of those, you have to use the
>               $SIG{__WARN__} facility, or turn off warnings inside
>               the BLOCK or EXPR using "no warnings 'all'".  See
>               "warn", perlvar, warnings and perllexwarn.
>
> IIRC it was determined then that 'eval' focus was to allow testing of
> trappable events - without allowing the code (however crazy) to die.
>
> The side effects are such that there are tests which lead one to believe
> X is a bug when in fact it is a mis-represented feature and should be
> documented as such.
>
> Simply saying "if this were in the real code" has little meaning since
> we are, after all, testing with eval.
>
> Not to be hard-headed but I just dont see this as an issue; I would .
> rather have established manageable chaos.
>
> (Not that my vote means so much; this is just my .02)
> -Sx-  =)

I agree.  This actually seems like perfectly appropriate behavior for eval.  The
puprose of the function is, after all, to evaluate code--to get information
about its effects and output value when run.  What warnings a piece of code
raises is certainly a very useful part of the overall information.

Joseph


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to