这篇文章主要介绍了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取最后一个参数再删除.

最新资讯
格力集团为转让格力电器股份采购券商及法律服务

格力集团为转让格力电

珠海格力集团有限公司分别采购“格力电器国有股份转让
亚马逊中国业务调整 外商难以与本地企业竞争

亚马逊中国业务调整

据The Verge报道,亚马逊周四宣布,该公司正在关闭其中国
从“电商”打到“云” 亚马逊、阿里谁更胜一筹?

从“电商”打到“云”

阿里巴巴和亚马逊,两家公司分别作为中、美两国的电商巨
爱奇艺称VIP会员权限被闪电盒子破(kai)解(she) 起诉索赔五百万

爱奇艺称VIP会员权限

因认为“闪电盒子”安卓APP在播放其影视视频节目时,会
为什么有人给自己的朋友圈点赞?

为什么有人给自己的朋

给自己点赞,是希望自己能好起来。
因拖延退费、合同扣费条款等争议 尚德机构被约谈

因拖延退费、合同扣费

京市市场监督管理局发布消息称,针对近日媒体报道的北京
最新文章
将Perl5代码迁移到Perl6上的解决方案

将Perl5代码迁移到Per

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

Perl 批量添加Copyrig

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

Perl字符串处理函数大

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

Perl中常见符号与操作

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

Perl学习教程之单行命

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

使用Perl生成随机密码

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