Perl函数(子程序)学习笔记

 更新时间:2014年11月28日 16:10:12   投稿:junjie  
这篇文章主要介绍了Perl函数(子程序)学习笔记,本文讲解了函数定义、函数返回值、函数参数传递等内容,需要的朋友可以参考下

一、函数定义

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

复制代码 代码如下:

sub subroutine{
    statements;
}

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

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

复制代码 代码如下:

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

说明:

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

二、函数返回值

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

复制代码 代码如下:

$a=1;

不用等于,直接$retval;

复制代码 代码如下:

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

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

3.返回错误

return 返回错误undef

用eval(‘subroutine') 函数,错误由$@变量中取得.

三、函数参数传递

形式:

复制代码 代码如下:

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

说明:

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

相关文章

  • perl文件读取的几种处理方式小结

    perl文件读取的几种处理方式小结

    perl打开文件后,可以有几种方式对文件进行读取处理(根据文件大小,文件内容的特征和其它要处理的方式)
    2013-02-02
  • perl用变量做句柄介绍

    perl用变量做句柄介绍

    在perl代码中,open 有一个特殊的地方,就是如果你给它一个未定义(这是为什么用hash的原因)的变量做间接文件句柄,那么 Perl 会自动为你定义那个变量,也就是自动把它激活,使它包含一个合适的文件句柄引用
    2013-02-02
  • 如何使用perl的Tie::File 模块删除文件固定行

    如何使用perl的Tie::File 模块删除文件固定行

    使用perl的Tie::File 模块删除文件固定行, 这里的处理主要利用了perl的Tie::File 模块把数组和文件绑定,然后就可以使用perl的splice函数操作数组,从而达到操作文件的目的,对perl删除文件固定行感兴趣的朋友跟随小编一起看看吧
    2023-12-12
  • windows安装perl及komodo IDE的详细步骤

    windows安装perl及komodo IDE的详细步骤

    这篇文章主要介绍了windows安装perl及komodo IDE的详细步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Perl学习笔记之文件操作

    Perl学习笔记之文件操作

    这篇文章主要介绍了Perl学习笔记之文件操作,本文分别给出了打开文件、读取文件、写入文件代码实例,需要的朋友可以参考下
    2015-06-06
  • 使用perl清理电脑上重复文件实现代码(续)

    使用perl清理电脑上重复文件实现代码(续)

    使有perl搜索电脑上的重复文件并删除,需要的朋友可以参考下
    2013-02-02
  • 通过perl实现一个简单的NIDS

    通过perl实现一个简单的NIDS

    使用perl实现一个简单的NIDS,有需要的朋友可以参考下
    2013-02-02
  • perl特殊符号及默认的内部变量

    perl特殊符号及默认的内部变量

    perl特殊符号及默认的内部变量,有需要的朋友不妨参考下
    2013-02-02
  • perl数据库添加、删除、更新、查询操作例子

    perl数据库添加、删除、更新、查询操作例子

    这篇文章主要介绍了perl数据库添加、删除、更新、查询操作例子,本文直接给出操作代码,需要的朋友可以参考下
    2014-08-08
  • Perl中使用MIME::Lite发送邮件实例

    Perl中使用MIME::Lite发送邮件实例

    这篇文章主要介绍了Perl中使用MIME::Lite发送邮件实例,本文介绍了使用sendmail方式发送、发送HTML格式邮件、smtp方式发送邮件等内容,需要的朋友可以参考下
    2014-09-09

最新评论