尝试显示源时,为什么会出现.perldb别名语法错误?

时间:2013-06-30 21:19:28

标签: perl debugging alias

我想显示perl脚本的完整源代码。以下行添加到.perldb:

$DB::alias{'code'} = 'l 1+99999;';

.perldb chmod设置为700.发出别名后,我收到以下错误:

  DB<1> code
Number found where operator expected at (eval 8)[/usr/share/perl5/perl5db.pl:2312] line 1, near "l 1"
    (Do you need to predeclare l?)
Couldn't evaluate `code' alias: syntax error at (eval 8)[/usr/share/perl5/perl5db.pl:2312] line 1, near "l 1"

别名似乎正确加载:

  DB<2> =
code    l 1+100;

修改: 当我使用'='命令定义别名时,它按预期工作:

 DB<2> = code l 1+99999
shcd    = l 1+99999

  DB<3> =
code    l 1+99999

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您必须声明别名code并使用您要运行的命令删除该内容。所以在.perldb内部做一个替换命令来获取它,如:

$DB::alias{ 'code' } = 's/^.*$/l 1+99999/';

然后在调试器中使用:

DB<100> code

它将输出脚本的整个代码(如果有更少的行数十万: - )