在perl中,可以在哈希初始化中使用HEREIS表示法吗?

时间:2015-01-04 22:26:13

标签: perl hash initialization

我正在尝试初始化这样的哈希:

use strict;

my %hash =
(
    key => <<END;
abc
def
END
    ,
    another_key => 17
);

当我在这段代码上运行perl -cw时,我在hash-initialize-test.pl第5行得到错误'语法错误,靠近“;”'。

有没有办法在哈希初始化中使用HEREIS表示法(例如<<END;)?如果没有,为什么不呢?

有几种简单的解决方法,但我喜欢将HEREIS表示法用于多行字符串,因为它很优雅并且避免引入不必要的变量。

1 个答案:

答案 0 :(得分:6)

删除分号。没有声明结束。

my %hash = ( key => <<'END',
abc
def
END
             another_key => 17,
           );