2015-01-08 2 views
0

Как запустить скрипт Perl в режиме отладки (например, «bash -x» для сценариев оболочки)?Запуск сценария Perl в режиме отладки

Я попытался параметр -w как в следующем примере:

#!/usr/bin/perl -w 

Но это не сработало.

+2

Что вы имеете в виду "это не сработало"? Пожалуйста, покажите, как вы пытались запустить скрипт и какова была ошибка. – dg99

+4

Добро пожаловать в переполнение стека. Вскоре прочитайте страницу [О программе]. '-w' будет работать, но он не запускает debug (он добавляет предупреждения, в то время как Perl компилирует скрипт). См. [Perldebug] (http://perldoc.perl.org/perldebug.html) о том, как запускать и использовать отладчик Perl. Обратите внимание, что вопрос, который говорит, что «это не сработало», не показывая код, фактический результат и ожидаемый результат на самом деле не отвечают - такие вопросы часто закрываются как «вне темы». –

+3

«-w» активирует предупреждения в perl. См. [Здесь] (http://perldoc.perl.org/perldebug.html) для отладки. – Jens

ответ

5
use strict; 
use warnings; 
use diagnostics; 

достаточно ИМО.

Если вы хотите использовать отладчик, а затем проверить: perldebug

Вы можете использовать встроенный в командной строке отладчика, как:

perl -d yourcode.pl 

Также смотрите:

4

perl -Dt вроде как bash -x, но вы должны специально скомпилировать perl, чтобы такого рода трассировки.

Но с любым perl, вы можете запустить сценарий с помощью отладчика:

perl -d yourscriptname yourscriptargs 

См perldebtut для начинающих.

3

Для bash -x стиль следа сценария Perl, выйдите Devel::DumpTrace. Пример:

demo.pl:

 #!/usr/bin/perl 
     # demo.pl: a demonstration of Devel::DumpTrace 
     $a = 1; 
     $b = 3; 
     $c = 2 * $a + 7 * $b; 
     @d = ($a, $b, $c + $b); 

выхода программы:

 $ perl -d:DumpTrace demo.pl 
     >>>>> demo.pl:3:  $a:1 = 1; 
     >>>>> demo.pl:4:  $b:3 = 3; 
     >>>>> demo.pl:5:  $c:23 = 2 * $a:1 + 7 * $b:3; 
     >>>>> demo.pl:6:  @d:(1,3,26) = ($a:1, $b:3, $c:23 + $b:3); 
Смежные вопросы