Иллюстрированный самоучитель по Perl

       

Просмотр значений переменных


В процессе отладки можно посмотреть значение любой переменной программы в любой момент времени. Команда

V [пакет [переменная]]

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

При работе с этой командой следует иметь в виду, что при задании переменной, значение которой необходимо посмотреть, не надо задавать никакого префикса, а только идентификатор переменной. Отладчик отобразит значения всех переменных указанного пакета с заданным идентификатором. Например, если в программе определена скалярная переменная $ref, маесив скаляров @ref и хеш-массив %ref, то выполнение команды v main ref приведет к следующему результату:

DB<1> V main ref $ref = 24 @ref = ( 1

01

1 2 | ) %ref = (

'One' => 1

'Two' => 2 )

Команда х аналогична команде v, но она отображает значения переменных текущего пакета. Ее параметром является идентификатор переменной, имя пакета указывать не надо. Вызванная без параметров, она отображает значения всех переменных текущего пакета. Например, команда х ref отобразит значения переменной $ref, массива @ref и хеш-массива %ref текущего пакета, внутри которого приостановлено выполнение программы. По умолчанию программа выполняется в пакете main.

Команда t работает как переключатель, включая режим отображения строк выполняемого кода (режим трассировки) или выключая его:

DB<11> t Trace = on

DB<11> с 5

main::(example2.pl:3): @ref = (1,2,3,4); main::(example2.pl:4): %ref = ("One",l, "Two",2); main::(example2.pl:5): $_ = " qwerty \t\tqwerty";

DB<12> t Trace = off

DB<12> с 7 main::(example2.pi:7): mySub();

DB<13>

Обратите внимание, что при включенном режиме трассировки отображаются все строки выполняемого кода, тогда как после его выключения, отображается только следующий, подлежащий выполнению оператор.



Содержание раздела