В Perl реализован превосходный
механизм отладки программ. Вам достаточно
запустить программу с ключом '-d' и вы
начнете работать с интерактивным
отладчиком. Вам становятся доступны все
переменные и массивы, вы можете вводить
выражения и операторы, трассировать,
исследовать работу программы в пошаговом
режиме и многое другое. Ниже перечислены
команды отладчика которые вы можете
вводить на его подсказку.
Команды отладчика.
h - Получить справку по командам.
T - Просмотреть стек программы
s - Выполнить одну команду и
остановиться.
n - Выполнить подпрограмму и
остановиться.
r - Выполнить текущую подпрограмму и
остановиться.
c - Продолжить выполнение до
следующей точки остановки.
c номер - Продолжить выполнение до
строки с данным номером.
- Повторить последнюю команду n или s.
l min+incr - Вывести incr+1 строк программы
начиная со строки min.
l min-max - Вывести строки начиная с min до
max.
l номер - Вывести строку с указанным
номером.
l - Вывести следующий экран строк.
- - Вывести предыдущий экран строк.
w строк - Вывести экран строк. Текущая
в середине.
l подпрограмма - Вывести строки
указанной подпрограммы.
/шаблон/ - Найти строку в тексте
программы.
?шаблон? - Обратный поиск строки в
тексте программы.
L - Вывести строки с точками останова
и активами.
S - Вывести имена всех подпрограмм.
t - Включить или выключить
трассировку.
b строка [ условие] - Установить точку
остановки.
b подпрограмма [ условие ] -
Установить точку остановки в начале
указанной подпрограммы и если указано
при данном условии.
d - Убрать точку остановки.
D - Убрать все точки остановки.
a строка команда - Установить актив (команду
которая выполнится вместе с указанной
строкой. "команда" - обычная команда
Perl.
A - Стереть все активы.
< команда - Выполнять команду перед
каждой остановкой.
> команда - Выполнить команду после
остановки отладчика.
V модуль [имена] - Вывести значение
всех или указанных имен в модуле. Внимание!
Символ '$' не вводится.
X [имена] - То же что и V , но только для
текущего модуля.
! номер - Выполнить одну строку
программы.
! -номер - Выполнить одну команду с
номером предшествующим текущей строке.
H - n - Вывести n последних выполненных
команд.
q или ^D - Выход из программы.
команда - Выполнить команду Perl.
p выражение - Вывести значение
выражения.
Конструктор BEGIN не отслеживается
отладчиком, но можно в теле конструктора
указать:
$DB::single =1;
и отладчик остановится. Данная команда не
вызовет ошибку при работе без отладчика.