我是perl的新手。
我正在尝试使用带数组引用的连接,但它无效。
这是我的代码。
my $arr = {
'items' => ('home', 'chair', 'table')
};
my $output = join(',', $arr->{'items'});
print $output;
正在打印
table
而不是
home,chair,table
在这方面有人可以帮助我吗?
答案 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中的引用和复杂数据结构的更多信息,请阅读