Perl模板工具包:您可以访问具有连字符名称的哈希键吗?

时间:2016-02-15 19:16:05

标签: perl template-toolkit

Perl模板工具包

访问连字符哈希表键

问题

您可以访问具有带连字符名称的哈希键吗?

例如,如果在Perl中声明以下hashref:

$hashref = {
    'regularKey' => 1,
    'hyphenated-key' => 1,
};

然后尝试通过Template Toolkit访问条目:

1. [% hashref.regularKey %] # Okay
2. [% hashref.hyphenated-key %] # Generates error

错误如下:

Argument "" isn't numeric in subtraction (-) at myTemplatizedFile line 2.

有没有办法绕过工具包假设连字符用于减法?

我尝试了什么

我尝试使用反斜杠转义连字符,但在处理模板时会产生此错误:

error - parse error - myTemplatizedFile line 138: unexpected token (\)

备份计划

我认为有两种方法可以解决这个问题:

  1. 更改密钥以删除连字符。
  2. 创建另一个hashref,通过该hashref访问带连字符的名称,该名称重新打包不带连字符的名称。 E.g:
  3. 添加Perl:

    $intermediateHashref = {
        'unhyphenatedKey' => $hashref->{'hyphenated-key'},
    }
    

    更改模板化文件:

    1. [% hashref.regularKey %] # Okay
    2. [% intermediateHashref.unhyphenatedKey %] # Okay
    

0 个答案:

没有答案