develooper Front page | perl.perl5.porters | Postings from October 1999

Re: deprecating SIGDIE

Thread Previous | Thread Next
Ilya Zakharevich
October 4, 1999 14:47
Re: deprecating SIGDIE
Message ID:
Nick Ing-Simmons writes:
> >> That fixes that. But still does not fix:
> >> 
> >>    eval { require $path };
> >>    if ($@ =~ /.../)
> >>     {
> >>     } 
> >
> >Fix *what*?  Why do you expect this to work at all?
> Tk has for a long time tried loading "/some/path/",
> after the manner of AutoLoader, and then if that fails "not found" 
> then tried to load "", if _that_ fails it assume Foo is 
> a delegated method.
> Note that other fails (syntax errors, missing modules etc.) are 
> are just reported as-is.

> It works with the local $SIG{__DIE__} "fix".
> But if a SIGDIE handler mangles the message it does not look like 
> a "not found" error anymore and the script exits rather than using
> one of the fallbacks.

But this just cannot work!  Say, suppose we have loading modules from
a ZIP attached to the end of the executable.  So when require happens,
the executable is (re)opened (btw, is it possible on Win*) and zip
stream is read from it.  Suppose the executable got truncated
somewhere.  You will get something like "read from a closed/broken
filehandle" ;-) error.

I do not think this scheme of yours is applicable as a testcase for
possible behaviour of possible $SIG{__EXCEPTION__}.


Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About