这篇文章主要介绍了Perl函数(子程序)学习笔记,本文讲解了函数定义、函数返回值、函数参数传递等内容,需要的朋友可以参考下

一、函数定义

子程序即一段分离的代码,它可以使重复代码且程序易读.perl中,子程序可以出现在程序的任何地方.但一般放在程序的开始或结尾.


sub subroutine{
  statements;
}

sub开始,子程序名同变量的命名规则,可与变量同名,最好不要与内部函数同名,如果与内部函数同名则用$subroutine区分,不用&是内部函数,用&是定义函数,但省略&时混淆.

带有原型说明的子程序定义:


sub subroutine($$){ #需要两个简单变量的参数
  statements;
}

说明:

1.()中的符号表示参数的类型,以一个字符表示一个参数.
2.$ 简单变量 @ 列表  % 散列  & 匿名子程序 * 引用
3.前加为强制类型一致,;分隔必须的参数和可选参数.
[email protected]$;$表示第一个参数为列表,第二个参数为简单变量,第三个参数简单变量可选.

二、函数返回值

1.缺省子程序中最后执行的一个语句的值将用作返回值,如果在if块中为最后执行的语句,虽然不是子程序的最后一句,也是返回值.


$a=1;

不用等于,直接$retval;


split(/:/,@a) 返回数组.

2.语句return(retval) 退出子程序并返回值retval,retval可以为列表.

3.返回错误

return 返回错误undef

用eval(‘subroutine') 函数,错误由[email protected]变量中取得.

三、函数参数传递

形式:


$sub1($num1,$unm2,$num3); 调用
sub sub1{
my($num1,$unm2,$num3)[email protected]_;
}
my $num1=shift;
my $num2=shift;
my $num3=pop;

说明:

1.所有参数在数组@_中,每个元素为$_[0],$_[1]
[email protected]_,$_[]为局部变量,当子程序内再调用子程序时,@_不改变,会新生成另一份@_.
3.改变@_内元素的值如$_[0]会改变主程序的参数值.
4.shift pop 一次取一个参数.对@_操作,shift取第一个参数,然后删除,pop取最后一个参数再删除.

最新资讯
中国移动副总裁:明年在所有地级以上城市实现5G商用

中国移动副总裁:明年在

中国移动目前已经完成40个国内城市超过900个关键设备
苹果Siri翻译究竟出了啥Bug? 牛和"牛"傻傻分不清楚

苹果Siri翻译究竟出了

近日,Siri却因为翻译功能Bug背上“侮X”的名号。从机器
华为Mate 20 X获中国首张5G终端电信设备进网许可证

华为Mate 20 X获中国

华为Mate 20 X 获得中国首张5G终端电信设备进网许可证
抖音回应与淘宝签70亿框架协议:有合作 但数据不实

抖音回应与淘宝签70亿

抖音方面向新浪科技回应称:我们与淘宝一直保持良好的合
错识贾跃亭一入乐视误终身 最后一位守夜人张昭走了

错识贾跃亭一入乐视误

两段创业旅程,两次与IPO失之交臂。张昭已年近60,为乐创
vivo第三季度推5G商用手机 未来涉足智能手表和耳机

vivo第三季度推5G商用

在今日的vivo创新日上,vivo宣布将于第三季度在国内发布
最新文章
将Perl5代码迁移到Perl6上的解决方案

将Perl5代码迁移到Per

今天小编就为大家分享一篇关于将Perl5代码迁移到Perl6
Perl 批量添加Copyright版权信息

Perl 批量添加Copyrig

对所有输入文件,如果没有版权信息则加上版权信息,否则什
Perl字符串处理函数大全

Perl字符串处理函数大

本文重点讨论Perl字符串处理函数的用法,每种函数都有
Perl中常见符号与操作

Perl中常见符号与操作

这篇文章主要介绍了Perl中常见符号与操作,需要的朋友
Perl学习教程之单行命令详解

Perl学习教程之单行命

这篇文章主要给大家介绍了关于Perl学习教程之单行命令
使用Perl生成随机密码

使用Perl生成随机密码

本文给大家分享的是使用perl生成随机密码的方法示例,而