>>>>> "James" == James G Smith <[EMAIL PROTECTED]> writes:
James> "Russell D. Weiss" <[EMAIL PROTECTED]> wrote:
>>
>> So, onto the problem. Within the constructor for the wrapper object, I want
>> to do:
>> bless $self, $class;
>> $main::SIG{'__DIE__'} = $self->custom_die;
James> Try
James> bless $self, $class;
James> $main::SIG{'__DIE__'} = sub { $self->custom_die(@_) };
James> This will make sure $self is the first argument to custom_die, it
James> will be the same $self as when the signal handler was called, and
James> the signal handling mechanism won't have to know about it.
But ensure that $self is a lexical ("my") variable. If it's a package
variable (even with local()) this will not work, because a closure
reference will not get made. You also don't need the $main:: because
%SIG (actually *SIG) is forced to main::.
Just another couple of Perl tips from someone who wrangles Perl all day
every day... :)
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!