問候我需要從嵌套的 perl 哈希生成一個 xml 檔案,保持哈希鍵的順序。我正在嘗試使用https://metacpan.org/pod/Tie::IxHash 來使密鑰保持有序。但是,我無法弄清楚如何訪問 Tie::IxHash 創建的哈希鍵,它們的行為不像哈希鍵、哈希參考鍵或物件。在示例代碼中,我創建了一個 Tie::IxHash 并嘗試列印密鑰 Transmitter 以下是示例代碼:
use strict;
use warnings;
use diagnostics;
use Scalar::Util;
use Data::Dumper;
use XML::Writer;
use Tie::IxHash;
use DateTime::Format::XSD;
my $time = time;
my $dt = DateTime->now;
my $timestamp = DateTime::Format::XSD->format_datetime($dt);
my $transmissionId = sprintf("%u",int(rand(100000000000000000000))). "E";
#sample data structure as hsah ref
# my $transmissionHeader = {
# TransmissionId => "$transmissionId",
# Timestamp => "$timestamp",
# Transmitter => {
# ETIN => '1232456789',
# SOME => '5555555555',
# }
# };
my $transmissionHeader = Tie::IxHash->new(
TransmissionId => "$transmissionId",
Timestamp => "$timestamp",
Transmitter => Tie::IxHash->new( #each nested hash a new object?
ETIN => '1232456789',
SOME => '5555555555',
),
);
print Dumper $transmissionHeader;
# tried all these no joy
print "$transmissionHeader{Transmitter} \n";
print "$transmissionHeader->{Transmitter} \n";
print "$transmissionHeader->Transmitter() \n";
uj5u.com熱心網友回復:
您可以使用該Indices()方法獲取鍵的索引,然后使用該Values()方法獲取該鍵的值:
my $idx = $transmissionHeader->Indices('Transmitter');
my $hash = $transmissionHeader->Values($idx);
print Dumper $hash;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/371911.html
標籤:perl
上一篇:Perl字串-替換多個字符
