perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philippe M. Chiasson" <>
Subject Re: [patch] shutting down 'constant sub redefined' in Apache::Reload
Date Mon, 26 May 2003 10:41:14 GMT
On Mon, 2003-05-26 at 17:16, Stas Bekman wrote:
> Philippe M. Chiasson wrote:
> > On Mon, 2003-05-26 at 15:46, Stas Bekman wrote:
> > 
> >>Currently if you have used a constant sub in your code, Apache::Reload will 
> >>complain every time the code is reloaded. And for a good reason:
> >>
> >>
> >>
> >>However it's a bad thing not being able to shut those warning, if you know 
> >>that you didn't modify the constant subs. The approach suggested by Rafael is

> >>to use $SIG{__WARN__} override, only for those who know what they are doing:
> > 
> > 
> > I am not sure about this one, but I would say that this will cut the
> > grass from under the feet of a module that installed his/her own
> > SIG{__WARN__} handler, won't it ?
> it sure would. Messing with SIG{__(WARN|DIE)__} is always a bad idea if it's 
> not under your control.
> > Wouldn't it be possible for Apache::Reload to somehow turn off the CONST
> > flag on that CV before attempting to re-define it? (didn't check if
> > that's even remotly possibly)
> Perl doesn't provide any API to shut this down. See the recent question about 
> this on p5p (from me).

Just caught up on the p5p postings. In light of that, I would think that
using SIG{__WARN__} is indeed that best course of action. I'd just make
sure to mark it with red tape, so that when an Apache::Reload gets
strange behaviour in previously working $SIG{WARN} catching, we'll be
able to point at the documentation and say : "Told you so" ;-p

And this is most certainly something broken with Perl, as no warnings
FATAL => 'all' should shield you from that annoying redefinition
warning. Oh well...

> __________________________________________________________________
> Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
>     mod_perl Guide --->
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:
-- -----------------------------------------------------------------------------
Philippe M. Chiasson /gozer\@(cpan|ectoplasm)\.org/ 88C3A5A5 (122FF51B/C634E37B)    F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3 A5A5
Q: It is impossible to make anything foolproof because fools are so ingenious.
perl -e'$$=\${gozer};{$_=unpack(P7,pack(L,$$));/^JAm_pH\n$/&&print||$$++&&redo}'

View raw message