在我的KRL代码中获取“无法将未定义的值用作ARRAY引用”错误

时间:2010-12-06 23:15:30

标签: krl

当我运行我的Kynetx应用程序时,我收到以下错误:

Can't use an undefined value as an ARRAY reference at /web/lib/perl/Kynetx/Persistence.pm line 284, <GEN0> line 465. 

我的代码如下所示:

rule page_loaded is active {
  select when pageview "manticore.*" setting()
  pre {
    savedName = current ent:userName;
  }
  if (savedName neq "") then {
    notify("Hello #{savedName}!!","Welcome back!") with sticky = true;
  }
  notfired {
    raise explicit event name_not_saved_yet;
  }  
}  

之前我有这个代码工作,不知道现在是什么杀了它。

更新 从调试信息。

// 2010/12/07 16:45:31 DEBUG Scheduler.pm a57x4 clear_saved_name Schedule iterator returning email_client with current RID count 0 and current rule count 3
// 2010/12/07 16:45:31 DEBUG Rules.pm a57x4 email_client Rule email_client is active
// 2010/12/07 16:45:31 DEBUG Rules.pm a57x4 email_client [selected] email_client
// 2010/12/07 16:45:31 DEBUG Rules.pm a57x4 email_client
//------------------- begin rule execution: email_client ------------------------
// 2010/12/07 16:45:31 ERROR Rules.pm a57x4 email_client Ruleset a57x4 failed: Can't use an undefined value as an ARRAY reference at /web/lib/perl/Kynetx/Persistence.pm line 284, <GEN0> line 6. 

1 个答案:

答案 0 :(得分:3)

我们改变了存储路径的方式。我会尽快修复错误。

如果我向您展示一些秘密功能,您需要承诺不要告诉

为您的实体变量尝试语法(如果您有一个变量myUserName):

 set ent:userName myUserName

然后,对于您的示例,您可以写:

pre {
  savedName = ent:userName || "";
}
if (savedName neq "") then ....

我们发布修补程序时会更新此答案