我知道我可以按如下方式創建數組和數組的引用:如何將數組引用轉換爲Perl中的數組?
my @arr =();
my $rarr = \@arr;
然後我可以在數組引用遍歷如下:
foreach my $i (@{$rarr}){
}
有沒有辦法複製或將數組轉換爲一個正常的數組,所以我可以從函數返回它? (理想情況下不使用foreach循環和推送)。
我知道我可以按如下方式創建數組和數組的引用:如何將數組引用轉換爲Perl中的數組?
my @arr =();
my $rarr = \@arr;
然後我可以在數組引用遍歷如下:
foreach my $i (@{$rarr}){
}
有沒有辦法複製或將數組轉換爲一個正常的數組,所以我可以從函數返回它? (理想情況下不使用foreach循環和推送)。
你:-)
use warnings;
use strict;
sub foo() {
my @arr =();
push @arr, "hello", ", ", "world", "\n";
my $arf = \@arr;
return @{$arf}; # <- here
}
my @bar = foo();
map { print; } (@bar);
你可以簡單地將其分配給新的數組的數組複製:
my @copy_of_array = @$array_ref;
,但你並不需要做的,只是返回修改後的數組。由於它是對數組的引用,因此只需通過引用更新數組即可!
像這樣:
return @{$reference};
你然後就返回一個取消引用的參考。
在你的問題的答案你不能在Perl返回數組。 (然而,你可以返回一個數組包含的列表) – tadmc 2011-04-01 21:29:40