我正在尝试在Perl6中使用数组的哈希值。
perl5等效项是:
my %c;
@{ $c{'USA'} } = qw(Seattle Madison Bozeman Portland);
push @{ $c{'USA'} }, 'Philadelphia';
但是在Perl6中是这样的:
my %c;
%c<USA> = 'Seattle', 'Madison', 'Bozeman', 'Portland';
%c{'USA'}.append: 'Philadelphia';
给出此错误
无法在不可变的“列表”上调用“添加”
我对Perl6的push
遇到了类似的错误,考虑到https://docs.perl6.org/routine/push中的示例显示%h<a>.push(1);
尝试%c<USA>.push('Philadelphia')
也失败了,这似乎还可以
我在这里做错了什么?我没有在搜索引擎结果中看到此错误
答案 0 :(得分:11)
my %c;
%c<USA> = ['Seattle', 'Madison', 'Bozeman', 'Portland'];
%c{'USA'}.append: 'Philadelphia';
指向Lists, sequences, and arrays文档的链接解释了这些区别,主要是List是不可变的,而Array不是。