免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3770 | 回复: 6
打印 上一主题 下一主题

请教,perl子程序调用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-03-22 23:59 |只看该作者 |倒序浏览
本人是新手,问个简单的问题,大家不要见笑。
在perl的子程序调用中
$n = &max(10,15);
然后再
sub max {
.............

在调用参数的时候,这个我感觉不好理解,因为我个人感觉$n算是一个变量,书本上对$n = &max(10,15);的解释是把两个参数传递到子程序里,但是怎么给人的感觉是把参数赋值给一个变量$n。而且又同时表示perl会将这两个参数保存到默认的@_数组里。。。。。感觉这里怎么没有逻辑,求大神解释,谢谢!

论坛徽章:
0
2 [报告]
发表于 2016-03-23 11:06 |只看该作者
有人吗。。。。

论坛徽章:
0
3 [报告]
发表于 2016-03-23 14:46 |只看该作者


# max (3, 5) 把两个参数传递到 max 子程序里,
  1. max (3, 5);
复制代码
# $n = ... 把 max (3, 5) 子程序调用返回, 赋值给一个 $n 变量
  1. my $n = max (3, 5);
复制代码
将这两个参数保存到默认的 @_

  1. sub max {
  2.     my ( $a, $b ) = @_; # 将这两个参数保存到默认的 @_
  3.     $a > $b ? $a : $b
  4. }
复制代码

论坛徽章:
0
4 [报告]
发表于 2016-07-02 19:47 |只看该作者
谢谢回复 3# Okelani


   

论坛徽章:
0
5 [报告]
发表于 2016-07-02 21:47 |只看该作者
没有坚持_不谈未来 发表于 2016-03-22 23:59
本人是新手,问个简单的问题,大家不要见笑。
在perl的子程序调用中
$n = &max(10,15);


$n = max函数的返回值

论坛徽章:
0
6 [报告]
发表于 2016-07-02 22:51 |只看该作者
谢谢,好久没看perl了,阁下主要是从事哪个方向的?回复 5# L_WC


   

论坛徽章:
0
7 [报告]
发表于 2016-07-03 07:24 |只看该作者
my $n = &max(3, 5);
sub max {
      my ($a, $b) = @_;
      my $c = $a > $b ? $a : $b;
      return $c;
}
其中3和5通过参数列表传递到子程序私有数组@_中,再赋值给私有变量$a和$b,对其进行比较操作,保持子程序内部的私有性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP