perl如果将string转换成array of hashes 字符串转数组

如何将$string="{file=>'file1',desc=>'test},{file=>'file12',desc=>'test2'}"转换成my@array_of... 如何将
$string = "{file => 'file1', desc => 'test}, {file => 'file12', desc => 'test2'}"

转换成

my @array_of_hashes = (
{file => 'file1', desc => 'test},
{file => 'file12', desc => 'test2'},

);
如果是 {file => 'file1', desc => 'test,descn => 'testn }, 就是hash里n对。 同时array也含有n个数组。 有没有一永安逸得方法 。 你的方法不错。不过只是针对特定的 这个string的。 麻烦你再帮帮我一下。谢谢
展开
 我来答
lubunan
2009-08-08 · TA获得超过1609个赞
知道小有建树答主
回答量:992
采纳率:0%
帮助的人:916万
展开全部
用split把它切块,然后用push 赋值给数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qfmeal
2009-08-09 · TA获得超过268个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:103万
展开全部
#!/bin/perl -w
use strict;

my $string = "{file => 'file1', desc => 'test'},{file => 'file12', desc => 'test2'}";

my @myarr;

while( $string =~ /{(\w+)\s* =>\s*'(\w+)',\s*(\w+)\s* =>\s*'(\w+)'}/g )
{
push @myarr,{$1 => $2, $3 =>$4};
}

print $myarr[1]->{desc},"\n";

单纯的split一下不行的。

数组的元素是匿名哈希,不是字符串,我感觉还是需要提出数据来的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式