perl数组在映射中散列错误,因为它说不能使用id,因为正在使用严格引用
这段代码有什么问题,它给我的错误是“不能使用字符串{id}作为散列引用,而使用'strict refs'”您需要在perl数组在映射中散列错误,因为它说不能使用id,因为正在使用严格引用,perl,Perl,这段代码有什么问题,它给我的错误是“不能使用字符串{id}作为散列引用,而使用'strict refs'”您需要在@extensiveArray中使用散列引用。您现在拥有的是一个简单的列表。Perl不支持嵌套列表 #!/usr/bin/perl -w use strict; my @extensiveArray = (( id => 1, name => 'Bob', ), ( id => 2, name => 'Barl
@extensiveArray
中使用散列引用。您现在拥有的是一个简单的列表。Perl不支持嵌套列表
#!/usr/bin/perl -w
use strict;
my @extensiveArray = ((
id => 1,
name => 'Bob',
),
(
id => 2,
name => 'Barley',
),
(
id => 3,
name => 'Marley',
)
);
my %hashRef = map { $_->{id} => { $_->{name} } } @extensiveArray;
一旦这样做,您将在匿名散列中得到奇数个元素的错误,因为{}
my @extensiveArray = (
{
id => 1,
name => 'Bob',
},
{
id => 2,
name => 'Barley',
},
{
id => 3,
name => 'Marley',
}
);
如果要从映射返回键/值对
,只需返回一个平面列表即可。这就是杂烩,真的
# here #
my %hashRef = map { $_->{id} => { $_->{name} } } @extensiveArray;
您应该签出并链接到那里的其他页面。您需要在
@extensiveArray
中使用哈希引用。您现在拥有的是一个简单的列表。Perl不支持嵌套列表
#!/usr/bin/perl -w
use strict;
my @extensiveArray = ((
id => 1,
name => 'Bob',
),
(
id => 2,
name => 'Barley',
),
(
id => 3,
name => 'Marley',
)
);
my %hashRef = map { $_->{id} => { $_->{name} } } @extensiveArray;
一旦这样做,您将在匿名散列中得到奇数个元素的错误,因为{}
my @extensiveArray = (
{
id => 1,
name => 'Bob',
},
{
id => 2,
name => 'Barley',
},
{
id => 3,
name => 'Marley',
}
);
如果要从映射返回键/值对
,只需返回一个平面列表即可。这就是杂烩,真的
# here #
my %hashRef = map { $_->{id} => { $_->{name} } } @extensiveArray;
你应该签出并链接到那里的其他页面。
@extensiveArray
不是你想象的那样<代码>使用数据::转储程序;打印转储程序\@扩展阵列代码>同时检查数组的来源-您是否正在阅读XML或JSON?因为可能有更好的解决方案?该代码不会给出该错误。@extensiveArray
不是您想象的那样<代码>使用数据::转储程序;打印转储程序\@扩展阵列代码>同时检查数组的来源-您是否正在阅读XML或JSON?因为可能有更好的解决方案?该代码不会给出该错误。