Eric Wilhelm wrote:
> There's nothing vigilante about writing code that assumes other code 
> will behave properly.  If I were going to put something on CPAN that 
> messed with __DIE__ hooks, it would only be an audit module.

Oh good.


> I will, however, 
> refuse to say "local $SIG{__DIE__}" inside of every eval just because 
> "*maybe* *somebody* did *something* wrong *somewhere*."  The user has 
> every right to shoot themselves in the foot however they see fit.

Unfortunately your foot is on top of theirs because its 50/50 as to who the
user is going to email with the bug.  That said, I only bother with this
level of bulletproofing in things like Test::Builder and you're glad I do.


>> Your CPAN module is 
>> going to break other CPAN modules and the poor sap using them who
>> didn't write any of it is going to have no idea why.
> 
> You're placing the blame in the wrong place.  Modules which rely on a 
> poorly-implemented $SIG{__DIE__} are going to break anyway.  I'm just 
> saying we should all leave the slack in the rope and not walk on 
> eggshells.  If the "poor sap" (though I tend to give Perl programmers 
> more credit than that) wants to send me an e-mail questioning why I 
> would be so bold as to use eval, I'll happily diagnose the problem and 
> send them in the right direction.

That's very generous of you.

Reply via email to