1 perl
我正在跟踪Perl脚本,我无法理解下面的表达式应该做什么:
keys %{ $data->{net_assets_detail}->{$port}->{$manager} }
Run Code Online (Sandbox Code Playgroud)
我试图从数据,端口或管理器中了解我们尝试访问哪个哈希的密钥?
以下是完整的代码:
foreach my $port ( keys %{$data->{net_assets_detail} } ) {
foreach my $manager (keys %{ $data->{net_assets_detail}->{$port} } ) {
my $fund_value = MOA::CLSUtils::get_manager_fund_value( $port, $manager, $args->{end_date} );
$fund_value ||=0;
my $net_asset_value = $data->{net_assets_manager}->{$port}->{$manager};
$net_asset_value ||=0;
foreach my $tran_type (keys %{ $data->{net_assets_detail}->{$port}->{$manager} } ) {
my $value = $data->{net_assets_detail}->{$port}->{$manager}->{$tran_type};
print OUT"$port\t";
print OUT"$manager\t";
print OUT"$tran_type\t";
print OUT"$value\n";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
让我们逐一看一下这一行.
%{ $data->{net_assets_detail}->{$port}->{$manager} }
Run Code Online (Sandbox Code Playgroud)
$data.net_assets_detail$port$manager这%{ ... }是取消引用hashref,因此内置函数可以使用散列.
该keys通吃键的哈希(这是从长啄间接引用),并返回它们作为一个列表.将foreach在该列表中迭代,并把每个键进入词法变量$tram_type是在循环体可用.
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |