傳遞到副程式時:前面要加 \ ,讓 Perl 傳遞 reference 到 sub 內,副程式內用 scalar ($) 來接
副程式回傳後,要接收時:要解析 reference (通常稱作 dereference),在外面加上 @{ } 來 dereference
下面是一個簡單的範例
#!/usr/bin/perl
@mainAry = ("abc", "def");
#deference and expand the array
@returnAry = @{ &getInterface(\@mainAry) };
print "origin : @mainAry\n";
print "return : @returnAry\n";
sub getInterface() {
my ($rec_ref) = @_ ;
$a_ref = [];
foreach $values (@{ $rec_ref }) {
push(@$a_ref, $values);
print "push $values\n";
}
return $a_ref;
}
沒有留言:
張貼留言