Определение псевдонима в .perldb (Perl Debugger) для вычисления выражения 'x' не работает - PullRequest
0 голосов
/ 26 января 2019

Мне интересно, есть ли способ определить псевдонимы в файле конфигурации Perl Debugger .perldb для команды x, которая выводит выражения.

Все следующие возможные варианты определения псевдонимов неработа:

cat .perldb
$DB::alias{ 'x0' }    = "x '%states'";             # Does not work
$DB::alias{ 'x1' }    = 'x %config';               # Does not work
$DB::alias{ 'x2' }    = '"x %config"';             # Does not work
$DB::alias{ 'x3' }    = 'x "%config, $foo"';       # Does not work
$DB::alias{ 'x4' }    = 'x "@L"';                  # Does not work
$DB::alias{ 'x5' }    = 'x %config, $foo';         # Does not work
$DB::alias{ 'x6' }    = '"x %config, $foo"';       # Does not work
$DB::alias{ 'xc' }    = 'x %config';               # Does not work
$DB::alias{ 'pFoo1' } = 'print("foo=$var1\n")';    # Works
$DB::alias{ 'pFoo2' } = 'print("$var2\n")';        # Works
$DB::alias{ 'p1' }    = 'print "\$_ =  $_"';       # Works
$DB::alias{ 'code' }  = 's/^.*$/l 1+99999/';       # Works

После запуска отладчика с помощью 'perl -d script.pl' и отображения псевдонимов с помощью = Я получаю:

code    s/^.*$/l 1+99999/
p1  print "\$_ =  $_"
pFoo1   print("foo=$var1\n")
pFoo2   print("$var2\n")
x0  x '%states'
x1  x %config
x2  "x %config"
x3  x "%config, $foo"
x4  x "@L"
x5  x %config, $foo
x6  "x %config, $foo"
xc  x %config

Любые идеи, если определения псевдонимовв .perldb ожидается специальный синтаксис или он просто не работает?

1 Ответ

0 голосов
/ 26 января 2019

Это не задокументировано, но содержимое хеша %alias - это строки, которые используются в качестве правой части $cmd =~ ... выражения .То есть, чтобы работать как положено, псевдонимы должны быть s/// командами.

Попробуйте что-то вроде

$DB::alias{ 'x1' } = 's/^.*/x %config/'; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...