加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 获取“哈希赋值中奇数个元素”时如何传递参数

发布时间:2020-12-16 06:10:31 所属栏目:大数据 来源:网络整理
导读:我在RT(http://bestpractical.com/rt)做一些模板编程,它使用Perl.不幸的是,我偶尔只会和Perl讨价还价. 我正在尝试调用以下开头的子过程: sub PrepareEmailUsingTemplate { my %args = ( Template = '',Arguments = {},@_ ); 由于这是lib的一部分,我无法改变
我在RT(http://bestpractical.com/rt)做一些模板编程,它使用Perl.不幸的是,我偶尔只会和Perl讨价还价.

我正在尝试调用以下开头的子过程:

sub PrepareEmailUsingTemplate {
    my %args = (
        Template => '',Arguments => {},@_
    );

由于这是lib的一部分,我无法改变它.

我正在做的电话是:

my ($template,$msg) = RT::Interface::Email->PrepareEmailUsingTemplate( 
    Template => 'CCReplyFirstMessage' );
return (0,$msg) unless $template;

我在/opt/rt4/sbin/../lib/RT/Interface/Email.pm第552行获得“哈希分配中奇数个元素.”(/ opt / t4 / sbin /../lib / RT /Interface/Email.pm:552),with是sub的第一行.

我知道我在传递参数方面做得很糟糕.我该怎么办呢?

解决方法

PrepareEmailUsingTemplate不是类方法,它是一个简单的函数.你想这样称呼它:

my ($template,$msg) = RT::Interface::Email::PrepareEmailUsingTemplate( 
    Template => 'CCReplyFirstMessage' );
return (0,$msg) unless $template;

当您使用 – >来调用它时,您的@_将最终得到三个值:您的两个用于哈希,而类名称在开头.将其作为类方法调用的结果将是这样的:

my %args = (
    Template => '','RT::Interface::Email::PrepareEmailUsingTemplate',Template => 'CCReplyFirstMessage'
);

而那就是你的“散列分配中奇数个元素”错误的来源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读