我有以下XML文件:如何在Perl中讀取哈希數據?
<?xml version='1.0'?>
<preferences>
<font role="console">
<fname>Courier</fname>
<size>9</size>
</font>
<font role="default">
<fname>Times New Roman</fname>
<size>14</size>
</font>
<font role="titles">
<fname>Helvetica</fname>
<size>10</size>
</font>
</preferences>
我設法閱讀並傾倒出來。現在我應該讀取所有的鍵值對。
下面是腳本:
#!/usr/bin/perl
use warnings;
use strict;
# use module
use XML::Simple;
use Data::Dumper;
my $data = XMLin('test.xml');
# print Dumper(%data);
while (my ($key, $value) = each(%$data)) {
print "$key => $value\n";
}
循環內不打印......這可能是什麼問題呢?我是新手,在同一天寫了我的Hello World腳本,所以我會對代碼採取任何建議。
這只是正常:
my $data = XMLin('test.xml');
print Dumper($data);
,這讓我:
$VAR1 = {
'font' => [
{
'fname' => 'Courier',
'role' => 'console',
'size' => '9'
},
{
'fname' => 'Times New Roman',
'role' => 'default',
'size' => '14'
},
{
'fname' => 'Helvetica',
'role' => 'titles',
'size' => '10'
}
]
};
我猜測的while
循環內我需要遍歷每個陣列。我對嗎?
$ data vs%data? –
指望我是一個白癡,並解釋你指的是什麼? –
對於初學者來說,養成在所有代碼中包含'use strict'的習慣。在這種情況下(在將'$ data = ...'聲明爲'my $ data = ...'的行之後),它會抱怨你沒有聲明'%data' - 這會幫助你指出你立即在正確的方向。 :-) – BlairHippo