【发布时间】:2012-02-18 05:55:18
【问题描述】:
我从文本文件中读取了一个字符串,这相当于我以以下格式声明它:
$string = '["Item1_Field1","Item1_Field2","Item1_Field3"],["Item2_Field1","Item2_Field2","Item2_Field3"],["Item3_Field1","Item3_Field2","Item3_Field3"],["Item4_Field1","Item4_Field2","Item4_Field3"]';
(实际字符串包含大约 600 个项目和大约 50 个字段) 我想要做的是得到一个项目和字段的二维(嵌套)数组,这样我就可以使用类似的东西来引用它们:
print $ItemsAndFields[1][2]
这将导致(允许从零开始的数组):
Item2_Field3
在我看来,字符串的格式与您在 Perl 中声明数组的方式非常相似,所以我希望有类似于以下内容的内容允许我直接将项目分配给数组:
@ItemsAndFields = magicfunction( $string );
但我找不到任何合适的东西可以让我以这种方式使用字符串。
我能看到的唯一方法是使用 split 函数两次来创建这个数组的数组。以下内容未经测试,只是我脑海中正在进行的一项工作:
$string =~ s/\[//g;
my @items = split(/\],*/, $string);
my @ItemsAndFields = split(/\,/, $string);
我尝试查看 eval() 函数、{} 引用的使用以及搜索此站点,但很难知道我需要搜索什么。
感谢任何帮助,我是 Perl 的新手。
【问题讨论】: