perl - 如何在 vscode 的 PerlDebug 中查看 hashmap 变量?

标签 perl debugging visual-studio-code hashmap watch

我正在 vscode 中使用 PerlDebug 进行远程调试。我跑了

PERLDB_OPTS="RemotePort=localmachine:5000 perl -d myscript.pl

在“remotemachine”上比我在“localmachine”上运行 vscode PerlDebug 并且能够跨过脚本行。

但是现在如何观察变量呢?我可以在附加示例中查看一些变量,如 part1part2value,但我无法查看 $events,可能是因为它是一个 hashmap。

enter image description here

它还在 VARIABLES Pane 中不显示任何内容。

是否可以在此处查看 HashMap 变量?

最佳答案

不要为监视表达式输入 $events,而是尝试输入 %events。然后扩展将理解它是 HashMap 而不是标量变量。

注意:当我对此进行测试时,我无法在WATCH 面板中显示数组和散列引用。因此,如果 $h 是哈希引用,将 %$h 添加为监视表达式不起作用(它不显示嵌套值)。然而,我能够通过声明 $h 的别名来解决这个问题,如下所示:

use v5.26;
use feature qw(declared_refs refaliasing);
my \%hh = \%$h;

然后观看 %hh 而不是 %$h。这也适用于数组引用。

关于perl - 如何在 vscode 的 PerlDebug 中查看 hashmap 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64776035/

相关文章:

perl - "use warnings;"和 "use warnings ' all';"之间有区别吗?

java - 带 Tomcat 的 Eclipse $$EnhancerByCGLIB$$ 'Unable to install breakpoint'

php - 为什么我的标题标签不能使用 config() 更改?

c++ - static_assert 有什么作用,你会用它做什么?

.net - VS Code $msCompile ProblemMatcher 不适用于相对文件路径

javascript - VS Code 中的多行注释

linux - 删除文件中行之间的字符串

javascript - 从 Javascript 到 Perl 的 URI 转义/转义

RegEx,替换可变数量的替换

python - 如何在代码中停止 autopep8 未安装的消息