首页 > 解决方案 > 在 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");
}

标签: perlcpan

解决方案


推荐阅读