- 论坛徽章:
- 0
|
本帖最后由 justu78 于 2014-01-04 00:13 编辑
我最近在写一个子程序,需要在循环中返回很多次同一个my申明的变量的引用,我发现用\@xx,这样返回后在主程序中得到的只是最后一个引用,除非用[@xx]这样的匿名数组引用返回才是想要的,我不太清楚其中的理论依据,请高手指教。请不要说有别的办法完成类似的任务,我只是想学习其中的原因。谢谢。下面是我准备的一个简单例子:
#!/bin/sh
eval 'exec perl -S -x -W $0 ${1+"$@"}'
#!perl
$\="\n";
$,=" ";
@ttt=&ttt;
print @ttt;
foreach (@ttt){
@tou=@{$_};
print @tou;
}
sub ttt {
#use strict;
my(@xx,$i,@yy);
for($i=0;$i<=10;$i++){
@xx=();
push(@xx,$i**3);
push(@xx,$i**3+$i**0.6);
######here is the option###########
push(@yy,\@xx);
#push(@yy,[@xx]);
}
return(@yy);
}
只有使用 push(@yy,[@xx]) 才能得到正确的结果,用push(@yy,\@xx)不行。 |
|