如何访问此转储程序输出表示的哈希



我正在破解一个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

最新更新