我正在破解一个git-svn Perl脚本。我有一个$paths
变量,我认为它包含一组单独的路径,但我很难迭代它。我的最终目标是向一个路径添加一个额外的属性。
这是转储器输出。
{
"/dira" => {
action => "A",
copyfrom_path => undef,
copyfrom_rev => -1
},
"/dira/dirb" => {
action => "A",
copyfrom_path => undef,
copyfrom_rev => -1
},
"/dira/dirb/test.55mb.file" => {
action => "A",
copyfrom_path => undef,
copyfrom_rev => -1
},
}
根据该输出,$paths
是对哈希引用的哈希的引用。
如果您知道要扩展的路径,则无需迭代:
$paths->{'/foo/bar'}{'my_attribute'} = 42;
如果要对所有路径统一执行此操作,可以执行以下操作:
for my $attrs (values %$paths) {
$attrs->{'my_attribute'} = 42;
}
有关哈希的信息,请参阅perldoc perldata
,有关引用和嵌套数据结构的perldoc perlreftut
。