在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4107|回复: 3

[求助] perl -- 子程序的参数如果是两个数组怎么办?(已经解决了)

[复制链接]
发表于 2012-4-19 10:28:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 tracy09 于 2012-4-20 13:41 编辑

程序如下:
#!/usr/bin/perl -w
@array1=qw[A B C D E F G H I J];
@array2=qw[B E I];
   print "
1--@array1\n";
   print "
2--@array2\n";
sub test($$) {
   my (@array1,@array2)=@_;
   my @array_out=();
   print "
1_insub--@array1\n";
   print "
2_insub--@array2\n";
}

@out=&test(@array1,@array2);


结果:
1--A B C D E F G H I J
2--B E I
1_insub--A B C D E F G H I J B E I
2_insub--


怎样能保证我的数组参数正确的传递呢?
发表于 2012-4-19 20:00:50 | 显示全部楼层
不是用引用吗?
发表于 2012-4-20 10:01:25 | 显示全部楼层
本帖最后由 射门靴 于 2012-4-20 10:11 编辑

直接传递数组给参数,会被merge成一个数组赋给@_
把数组的引用赋给参数,就能实现你的想法了,使用的时候解引用就ok了
见我改的代码

------------------------------------

#!/usr/bin/perl -w
@array1=qw[A B C D E F G H I J];
@array2=qw[B E I];
   print "1--@array1\n";
   print "2--@array2\n";
sub test() {
   ($array3,$array4) = @_ ;
   print "1_insub--@$array3\n";
   print "2_insub--@$array4\n";
   (@$array3,@$array4) ;
}
@out = &test(\@array1,\@array2);
print "out array : @out\n" ;

------------------------------

运行结果:
1--A B C D E F G H I J
2--B E I
1_insub--A B C D E F G H I J
2_insub--B E I
out array : A B C D E F G H I J B E I
 楼主| 发表于 2012-4-20 13:40:25 | 显示全部楼层

RE: perl -- 子程序的参数如果是两个数组怎么办?(已解决)

回复 3# 射门靴


    非常感谢! 问题解决了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 08:24 , Processed in 0.018459 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表