Perl 返回的值错误";散列(0x8dc0f54)";

Perl 返回的值错误";散列(0x8dc0f54)";,perl,cgi,Perl,Cgi,我试图获取返回到$HTMLData的值,但我得到的是哈希(0x8dc0f54)返回值,而不是Hello World我似乎无法理解它 print "Content-type: text/html\n\n"; my $XML = new XML::Simple; my $Data = $XML->XMLin("Data/Content/$PageName.xml"); my $HTMLData = $Data->{HTMLData}; print "$HTMLData"; XML

我试图获取返回到
$HTMLData
的值,但我得到的是
哈希(0x8dc0f54)
返回值,而不是
Hello World
我似乎无法理解它

print "Content-type: text/html\n\n";

my $XML = new XML::Simple;
my $Data = $XML->XMLin("Data/Content/$PageName.xml");

my $HTMLData = $Data->{HTMLData};

print "$HTMLData";
XML数据:

<HTMLData>

<p>Hello World</p>

</HTMLData>

你好,世界


如果您转储了实际数据,您将看到这里发生了什么:

use Data::Dumper;
print Dumper($HTMLData);
#$VAR1 = {
#          'p' => 'Hello World'
#        };

您没有访问“p”节点。尝试
my$HTMLData=$Data->{'HTMLData'}->{'p'}

试试
$Data->{HTMLData}->{p}
。您可以
使用Data::Dumper;打印转储程序(数据)
以查看数据结构。不希望访问“p”节点需要访问HTMLData并获取该节点中的HTML数据“Hello World

”,然后重新编码:
print$XML->XMLOut($HTMLData)你说你想在你的问题中包含“Hello World”的内容。@Bill那么XML是错误的。如果节点的内容是HTML,那么它应该包含在CDATA块中