gpt4 book ai didi

perl - .perldb(Perl 调试器)中用于表达式评估 'x' 的别名定义不起作用

转载 作者:行者123 更新时间:2023-12-01 13:16:28 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以在 Perl 调试器配置文件 .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 中的别名定义需要特殊语法或者它根本不起作用,您有什么想法吗?

最佳答案

这没有记录,但是 the contents of the %alias hash are strings that are used as the right-hand side of a $cmd =~ ... expression .也就是说,要按预期工作,别名必须是 s/// 命令。

尝试类似的东西

$DB::alias{ 'x1' } = 's/^.*/x %config/'; 

关于perl - .perldb(Perl 调试器)中用于表达式评估 'x' 的别名定义不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54377294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com