you're right, i forgot about those two perl signals.

ashamed
martin

Stas Bekman wrote:

> Martin Haase-Thomas wrote:
>
>> perl sighandlers require the signal as their first argument. so i 
>> assume that it may not be a good idea to call Carp::cluck(), as any 
>> of the Carp methods expect strings. try typing as follows:
>>
>> $SIG{WARN} = sub { Carp::cluck ("received signal shift() at 
>> line".__LINE__) };
>
>
> Sorry Martin, but this is incorrect. There is no signal SIGWARN. 
> $SIG{__WARN__} and $SIG{__DIE__} are special perl "signal" handlers, 
> which accept the string as the first argument (actually expect a 
> list). This has no effect:
>
>  perl -MCarp -le '$SIG{WARN} = sub { Carp::cluck ("received signal 
> shift() at line".__LINE__) }; warn doh, doh'
> dohdoh at -e line 1.
>
> While this does:
>
>  perl -MCarp -le '$SIG{__WARN__} = sub { Carp::cluck ("received signal 
> shift() at line".__LINE__) }; warn doh, doh'
> received signal shift() at line1 at -e line 1
>     main::__ANON__('dohdoh at -e line 1.^J') called at -e line 1
>
>
> The Carp::cluck trick is correct, unless someone somewhere redefines 
> $SIG{__WARN__}.
>
>
>> martin
>>
>>
>> Tim Noll wrote:
>>
>>> Stas Bekman wrote:
>>>
>>>>> I know this is a pretty generic question, but if nobody knows a quick
>>>>> answer, I can get more specific in a later post. Under Apache 
>>>>> 1.3.22 /
>>>>> mod_perl 1.26, even while using $SIG{__WARN__} = \&Carp::cluck, I 
>>>>> keep
>>>>> getting "Use of uninitialized value." in the Apache error log, with
>>>>> absolutely no line number or back trace or anything else. Does 
>>>>> anybody
>>>>>
>>> know
>>>
>>>>> what might cause this? Thanks.
>>>>>
>>>> Where did you set $SIG{__WARN__}? Try in startup.pl as early as 
>>>> possible.
>>>>
>>>
>>> It's set in startup.pl, which is basically a modified version of the 
>>> example
>>> from perl.apache.org/guide. It works beautifully for every other 
>>> error I've
>>> come across, which is why this one is so curious. As I mention in my 
>>> earlier
>>> follow-up to my own post, I eventually traced the problem to an 
>>> incorrect
>>> driver string in DBI->connect. However, that doesn't explain (to me 
>>> anyway)
>>> why I wasn't getting more detail in the error log. Perhaps I'll 
>>> delve into
>>> DBI.pm, unless someone can explain this to me beforehand.
>>>
>>> -Tim
>>>
>>>
>>
>
>
>

-- 
                   http://www.meome.de
-------------------------------------------------------
Martin Haase-Thomas         |       Tel.: 030 43730-558
meOme AG                    |       Fax.: 030 43730-555
Software Development        |           [EMAIL PROTECTED]
-------------------------------------------------------



Reply via email to