【发布时间】:2015-02-20 20:20:32
【问题描述】:
如果我有一个像下面这样的数组,其中元素的顺序是随机的,并且每个元素可以有多少级别没有限制。这里只显示 3 个级别。 a、b 和 c。
我希望能够解析这样的数组,并将结果存储在像这样的哈希哈希中,当只有 3 个级别时
$VAR1 = {
'a' => {
'b' => 'c'
}
};
问题
我的问题是如何为此编写正则表达式,因为第一级末尾没有/,并且由于元素的顺序是随机的,如果a/b/c已经插入哈希,则元素 a 不应删除键 a 的哈希值。
这样的问题怎么解决?
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @ar = ("a", "a/b", "a/b/c");
my %h = ();
foreach my $a (@ar) {
}
【问题讨论】:
-
如何处理
"a"输入?在这种情况下,值应该是什么并不明显,并且哈希不能只有一个键。 -
如果这是您要解析的路径,请改用
File::Spec模块splitdir。 -
只是出于好奇,这些字符串实际上代表什么?正如 TLP 指出的文件路径,可能有更好的方法来处理它们,具体取决于它们是什么。
-
但是如果值在 a 情况下应该是 undef,那么它也应该在 c 情况下 (
{'a'=>{'b'=>{'c'=>undef}}})