私は Perl を初めて使用するので、私のコードを許していただく必要があります。
私はツリー構造のファイル(実際にはxmlのようなもの)を読んでいforeach
て、ツリーを通り抜けたいのですが、特定の「ノード」に子ノードがない場合は、それを挿入したいと思います。十分に単純です。
これが私のコードです:
foreach $key ( @{$struct->{'transferBatch'}->{'callEventDetails'} } ) {
foreach ( keys %{$key} ) {
if ( $_ eq "mobileTerminatedCall" ) {
if ( defined $key->{$_}->{'basicServiceUsedList'} ) {
if ( defined $key->{$_}->{'basicServiceUsedList'}[0]->{'chargeInformationList'} ) {
if ( not defined $key->{$_}->{'basicServiceUsedList'}[0]->{'chargeInformationList'}[0]->{'CallTypeGroup'} ) {
$CallTypeGroup = {
"CallTypeLevel1:" => "0",
"CallTypeLevel2:" => "0",
"CallTypeLevel3:" => "0"
};
#Doesn't work!
$key->{$_}->{'basicServiceUsedList'}[0]->{'chargeInformationList'}[0]{'CallTypeGroup'} = $CallTypeGroup;
}
}
}
}
}
}
反復は正常にpush
機能していますが、ARRAY 参照ではないと言って呼び出しが失敗します。近い気がしますが、$CallTypeGroup
ハッシュを子として現在のスポットに挿入するには、その行が必要です。
どんな助けでも大歓迎です!