我有一个例子,说明我在下面尝试做什么.它有效,但我认为它会更好.我有一个数组,其中包含一个键和一个由冒号分隔的相同字符串中的值.我需要把它变成哈希.目前我使用split和temp数组.我觉得我可以解决这个问题,但我找不到语法.
#!/grid/common/bin/perl -w
my @row=("x:3", "y:4", "z:abc");
my %hash = map { my @x=split(":",$_); $x[0] => $x[1] } @row;
print("$_ : $hash{$_}\n") for(keys(%hash));
Run Code Online (Sandbox Code Playgroud)
您可以简单地在您的键值对数组中映射拆分操作,并将该结果分配回哈希.perldoc -f split返回一个列表,您可以直接将列表分配给哈希:
my @row = ("x:3", "y:4", "z:abc");
my %hash = map { split /:/ } @row; # outputs "x", "3", "y", "4", "z", "abc"
print("$_ : $hash{$_}\n") for(keys(%hash));
# output
# z : abc
# y : 4
# x : 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |