子程序的调用语法
直接调用语法
- Name(LIST) 函数名,参数列表
- Name LIST
用&调用
- 适用于:先调用后定义
&Name();
调用2次,rest,再调用2次,再定义
省略&调用
-
适用于先定义后调用
举例 - @array=@_;
传递add的参数到array里面 - 本例子中的foreach循环,每循环一次就将array中的参数给item,并与val相加一次
- 因此result=1+2+1=4
- data=4+1+3=8
- 另外,有圆括号的时候也可以省略&
省略括号
- 适用于预声明/输入了子过程的情况
前向引用
- 先定义子程序名,后面再定义子程序体,不需要用&符号
- &和()只在某些情况下可以省略,搞不清楚可以不省略
用do调用
- do Name(LIST);
说明
- perl很多自带函数是大写
返回值
- 子程序调用后会以值的形式返回
- 可以返回字符串、数字、布尔量,空值等
- 默认情况下最后一个语句的值是返回值
- 可以用return返回值
- return后面的语句会被忽略
参数传递
- 主函数和子函数的联系通过参数传递实现
传递标量
- @_:代表所有子程序的输入参数列表
传递数组
- 也用@_接收参数
举例
注意: - 数组的参数传递只可以用一个数组去接收,可以传递多个,但只能用一个接收
-
如果用一个标量一个数组接收一个标量一个数组,那是可以的,看举例:
举例
网友评论