你好我正在通過PERL從XMLRPC API檢索數據,並最終得到一個HASH(實際上我相信這裏的正確術語應該是數組中的數組),我部分想將其轉換爲CSV文件。如何將多維HASH轉換爲PERL中的CSV文件?
如這裏的基本概述是我在做什麼:
my $server = XMLRPC::Lite
->proxy('https://myhost/api');
my $session = $server->login(foo)
->result;
my @tempArr = $server->call(foobar)->result;
事後:
print @tempArr;
結果:
HASH(0x23c0330)
如果我傾倒通過數據計算散列內容:: Dumper:
print Dumper(\@tempArr);
然後我收到陣列的結構如下:
$VAR1 = [
{
'table' => [
[
'abc',
'def',
'ghi',
'jkl'
],
[
'abc',
'def',
'fed',
'cba'
],
],
'columns' => [
'field1',
'field2',
'field3',
'field4',
]
}
];
現在我想從「表」的所有項目寫入一個CSV文件格式化。所以基本上在這種情況下:
abc,def,ghi,jkl
abc,def,fed,cba
我用文字:: CSV :: Slurp的玩弄了一會兒,但並沒有真正理解如何處理它的陣列陣列內:
my $csv = Text::CSV::Slurp->create(input => \@tempArr);
my $file = "/path/output.csv";
open(FH, ">$file") || die "Couldn't open $file $!";
print FH $csv;
close FH;
我只是想出了以下內容的csv文件:
columns,table
ARRAY(0x23c01b0),ARRAY(0x25a944c)
對如何處理這個問題的任何建議,將不勝感激。目前我已經決定回顧一下PERL中的數組和哈希,因爲我似乎對這個問題缺乏很多基本的理解。
'print $ tempArr;'nothing nothing用@ tempArr做的事情。你確定你發佈了正確的代碼嗎? – cjm
Woopsy,這是我的代碼片斷中的一個錯字。謝謝你指出。我現在糾正了它! – user3248687