perl加入数组引用

时间:2013-09-18 11:05:07

标签: perl join arrayref

我是perl的新手。

我正在尝试使用带数组引用的连接,但它无效。

这是我的代码。

my $arr = {
     'items' => ('home', 'chair', 'table')
};

my $output = join(',', $arr->{'items'});

print $output;

正在打印

table

而不是

home,chair,table

在这方面有人可以帮助我吗?

1 个答案:

答案 0 :(得分:18)

在Perl中,parens不会创建数组。他们只挑选优先权。 hashref

{ 'items' => ('home', 'chair', 'table') }

相同
{ 'items' => 'home', 'chair' => 'table' }

如果要将数组放入哈希,则需要使用可以使用[ ... ]创建的arrayref:

my $hash = { 'items' => ['home', 'chair', 'table'] }

现在,如果您运行代码,您将获得类似

的内容
ARRAY(0x1234567)

作为输出。这是引用的打印方式。我们需要取消引用它才能加入元素。我们可以使用@{ ... }数组解除引用运算符来实现。然后:

print join(',', @{ $hash->{items} }), "\n";

要了解有关Perl中的引用和复杂数据结构的更多信息,请阅读