В Перл реализован превосходный механизм отладки программ. Вам достаточно запустить программу с ключом '-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 строка команда - Установить актив (команду которая выполнится вместе с указанной строкой. «команда» – обычныая команда Перл.

A – Стереть все активы.

< команда – Выполнять команду перед каждой остановкой.

> команда – Выполнить команду после остановки отладчика.

V модуль [имена] – Вывести значение всех или указанных имен в модуле. Внимание! Символ '$' не вводится.

X [имена] – То же что и V , но только для текущего модуля.

! номер – Выполнить одну строку программы.

! -номер – Выполнить одну команду с номером предшествующим текущей строке.

H – n – Вывести n последних выполненных команд.

q или ^D – Выход из программы.

команда – Выполнить команду Перл.

p выражение – Вывести значение выражения.

Конструктор BEGIN не отслеживается отладчиком, но можно в теле конструктора указать:

$DB::single =1;

и отладчик остановится. Данная команда не вызовет ошибку при работе без отладчика.