我是 perl 的新手。
我正在尝试将 join 与数组引用一起使用,但它不起作用。
这是我的代码。
my $arr = {
'items' => ('home', 'chair', 'table')
};
my $output = join(',', $arr->{'items'});
print $output;
正在打印
table
代替
home,chair,table
有人可以在这方面帮助我吗?
在 Perl 中,括号不创建数组。他们只排序优先级。哈希引用
{ 'items' => ('home', 'chair', 'table') }
是相同的
{ 'items' => 'home', 'chair' => 'table' }
如果要将数组放入哈希中,则需要使用 arrayref,可以使用以下命令创建[ ... ]
:
my $hash = { 'items' => ['home', 'chair', 'table'] }
现在如果你运行你的代码,你会得到类似的东西
ARRAY(0x1234567)
作为输出。这是打印参考的方式。我们需要取消引用它才能加入元素。我们可以使用@{ ... }
数组取消引用运算符来做到这一点。然后:
print join(',', @{ $hash->{items} }), "\n";
要了解有关 Perl 中的引用和复杂数据结构的更多信息,请阅读