我這樣做:Perl數組傾銷
my @items = [];
sub pushItem {
my $itemId = "i" . sprintf("%d", $_[0]);
push(@items, $itemId);
}
sub popItems {
$itemsXml = "<key>items</key>\n<array>\n";
foreach (@items) {
$itemsXml .= "<string>$_</string>\n";
}
$itemsXml .= "</array>\n";
return $itemsXml;
}
pushItem(0);
pushItem(1);
pushItem(2);
print popItems();
我得到這個:
<key>items</key>
<array>
<string>ARRAY(0x7fa1730070d0)</string>
<string>i0</string>
<string>i1</string>
<string>i2</string>
</array>
當然存在的問題:
<string>ARRAY(0x7fa1730070d0)</string>
我在稍後清理數組,因此@items =()派上用場。謝謝!我接受你的解釋,因爲Miguel已經有很多upvotes了。感謝這兩個! – QED 2013-03-06 22:16:14
是的,'@items =();'很方便(儘管這非常非常罕見)。 'my @items =();'因爲它清除了剛剛創建的數組(因此它已經清除),所以不方便。 – ikegami 2013-03-06 22:16:54
爲我的回答添加了一些說明。 – ikegami 2013-03-06 22:22:00