在此Perl代码中->的含义是什么?

时间:2018-12-27 13:19:36

标签: perl hashmap

open PROPS, $propertyFile or die "Cannot open $propertyFile";
while ( my $lines = <PROPS> ) {
    chop $line;
    my @fields = split(/,/, $line)
    $r_CntrProp->{$fields[0]}->{$fields[1]} = {
        'behaviour'  => $fields[2],
        'type'       => $fields[3],
        'compressed' => $fields[4]
    };
}

属性文件正在从用户读取为输入文件。

1 个答案:

答案 0 :(得分:3)

  

$r_CntrProp->{$fields[0]}->{$fields[1]}

在这段代码中,对于每个箭头(->):

  • 左侧是哈希引用
  • {}之间的右侧是一个哈希键

该表达式可访问散列引用内键下存储的所有内容。您的代码实际上为该哈希条目(哈希引用)分配了一些内容。

请参见The Arrow Operator in perlopUsing References in perlref

基本上,$r_CntrProp是对散列引用的散列的引用,例如:

my $r_CntrProp  = {
    foo => {
        bar => 'baz'
    }
};

print $r_CntrProp->{foo}->{bar}, "\n";

收益:

baz