perl - 在 Tree::DAGNode 模块中使用 Walkdown 方法的问题
问题描述
我正在尝试使用 CPAN 的 Tree::DAG_Node 模块中的 walkdown 方法来搜索某些内容。假设我要搜索的是字符串“instance1”。如何在我的树中搜索它?
这就是我所做的,假设我已经有一个树数据结构(内容不适合公共分发)并且它可以工作。我尝试创建一个子例程来搜索作为子例程的参数传入的特定字符串,然后将其传递到我的树的 walkdown 方法中。为简化起见,假设它将每个节点的名称与字符串进行比较,并应该打印出节点的名称。但是在这种情况下,它不会打印出假定的节点名称。我尝试检查 if 比较块的 lhs 和 rhs 正在注册的内容,并且它们确实打印了正确的内容。我不确定为什么我的程序流程没有进入 if 块。
sub search {
$root->walk_down({
callback => sub {
my $node = shift;
if ($node->name eq $_[0]->{search_item}){
print $node->name, "\n" ;
}
},
_depth => 0,
search_item => $_[0]
})
}
sub main {
search("instance1");
}
解决方案
推荐阅读
- python - 确定天空中的月食
- c++ - CodeBlocks中定义的参数-Isrc在哪里?
- git - 如何删除从命令行创建的 github 存储库?
- kotlin - 在 Kotlin 中传递具有不同参数的函数列表
- python - 无法使用 BeautifulSoup 在“p”标签内打印文本
- html - 表 Angular 8 中的数据未刷新
- javascript - 变量“$file”的值无效 {}; 上传值无效
- ios - 用于合成红色、绿色和蓝色颜色通道的 CIFilter
- c# - 如何在vs2017内置的代码中使用vs2013内置的dll库?
- c# - $ - 字符串插值实时编译 - 从文件