воскресенье, 20 сентября 2015 г.

Отладка, включаем и выключаем по желанию

"Наиболее эффективным инструментом отладки всё ещё 
остаётся внимательное размышление, связанное с 
благоразумно расположенными print выражениями."
Брайн Керниган "Unix для начинающих. 1979 г"

Такую возможность для управляемой отладки предоставляет глобальная переменная $DEBUG в модуле, который мы хотим отлаживать время от времени. Сами же отладочные вызовы должны срабатывать только при истинном значении $DEBUG. Включать и выключать отладочный режим можно простым переопределением значения переменной $DEBUG в программе, которая использует данный модуль.

Пример:

ABC.pm - модуль, который необходимо отлаживать.

package ABC;

use strict;
use warnings;

our $DEBUG = 0;

sub foo {
     warn "Warning: important information" if $DEBUG;
     return 'World!';
}

1;

main.pl - основная программа.

use strict;
use warnings;

use ABC;
$\ = "\n";

{
     $ABC::DEBUG = 0;
     print "Hello " . ABC::foo;
}

print "-" x 45;

{
     $ABC::DEBUG = 1;
     print "Hello " . ABC::foo;
}

На выходе будет:
Hello World!
---------------------------------------------
Warning: important information at ABC.pm line 9.
Hello World!

Комментариев нет:

Отправить комментарий