我有一些JavaScript:
var $things = [
{
"id": "1",
"image": "one.png"
},
{
"id": "2",
"image": "two.png"
},
];
它被转换为Perl数组($thingsJSON
是上面的字符串表示形式):
my $coder = JSON::XS->new->utf8;
my $things = $coder->decode($thingsJSON);
想要一个$things
上的地图函数,它将返回一个如下所示的集合($args
):
(
image => "one.png",
image => "two.png"
)
我希望能够将上面的$args
传递给另一个函数:
$Bar->find($args)
答案 0 :(得分:1)
假设你真正想要的是一个包含列表的数组,你可以传递给那个期望键/值对的函数,这可以工作:
@args = map { (image => $_->{image}) } @$things;
为清楚起见,这与
相同@args = map { ('image', $_->{image}) } @$things;
也就是说,map
只返回一个列表,其中所有偶数元素都是字符串"image"
,所有奇数元素都是image
的值@$things
中某个元素的键。