Я пишу библиотеку, которая использует множество модулей, вызывающих Net::Http::Methods::format_request
, к сожалению, во время выполнения кода в моей библиотеке я получаю предупреждение:
Use of uninitialized value $v in concatenation (.) or string at ~/perl5/lib/perl5/Net/HTTP/Methods.pm line 167.
Есть ли способ получить трассировку стека из этого предупреждения, чтобы я мог сузить его до точного вызова? Моя первая мысль — добавить no warnings
над каждым потенциальным звонком, но это кажется непрактичным, учитывая количество звонков. (Хотя я сделаю это, если придется).
Использовать
PERL5OPT=-MCarp::Always script.pl
или
perl -MCarp::Always script.pl
Альтернативно вы можете использовать отладчик.
Сначала добавьте следующее перед оскорбительной строкой:
$DB::single = 1 if !defined( $v );
Затем запустите программу в отладчике Perl (perl -d
). T
предоставит трассировку стека.