目前,我使用以下代碼將不規則多維數組轉換爲一維數組。將多維數組轉換爲一維數組的更好方法
my $array = [0,
[1],
2,
[3, 4, 5],
[6,
[7, 8, 9 ],
],
[10],
11,
];
my @mylist;
getList($array);
print Dumper (\@mylist);
sub getList
{
my $array = shift;
return if (!defined $array);
if (ref $array eq "ARRAY")
{
foreach my $i (@$array)
{
getList($i);
}
}
else
{
print "pushing $array\n";
push (@mylist, $array);
}
}
這是基於遞歸的,我在檢查每個元素。如果元素是對數組的引用,則使用新數組遞歸地調用它。
有沒有更好的方法來解決這類問題?
應該添加「使用Data :: Dumper qw(Dumper);」代碼示例。 – 2011-02-09 13:30:28