gpt4 book ai didi

perl - 这不是数组引用吗?为什么它不是数组引用?

转载 作者:行者123 更新时间:2023-12-01 23:19:35 26 4
gpt4 key购买 nike

我正在尝试使用以下几行调试一个令人费解的问题,该问题位于我继承的程序的内部深处,

my $log = [];
$root->validate_subtree($log);

导致以下错误

Treex::PML::Node::validate: log must be an ARRAY reference

$rootTreex::PML::Node 类型的对象,并且这两行确实相邻 - 我没有遗漏任何内容。我找到了错误消息的来源,validate_subtree() 按如下方式检查其参数(Node.pm 第 423 行):

sub validate_subtree {
my ($node, $log) = @_;
if (defined $log and UNIVERSAL::isa($log,'ARRAY')) {
croak __PACKAGE__."::validate: log must be an ARRAY reference";
}

我认为 $log = [] 确实$log 初始化为数组引用!我错过了什么?

最佳答案

你是对的。您显示的代码确实将 $log 设置为数组引用。这段代码:

sub validate_subtree {
my ($node, $log) = @_;
if (defined $log and UNIVERSAL::isa($log,'ARRAY')) {
croak __PACKAGE__."::validate: log must be an ARRAY reference";
}

$log实际上是一个数组引用时就会发出嘎嘎声。我猜您在发行版中发现了一个错误,它应该是

  if (defined $log and not UNIVERSAL::isa($log,'ARRAY')) {

关于perl - 这不是数组引用吗?为什么它不是数组引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33289738/

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