Perl语言学习(七)Perl子程序

七、Perl子程序

1、Perl子程序的基本概念

  • 子程序的定义

    • 执行一个特殊任务的一段分离的代码
    • 可以重复使用的一段代码
    • 在Perl中。子程序可以出现在程序的任何地方
    • 优点
      • 利用子程序把长的脚本分解为小的更易理解的片段
      • 把常用操作封装为独立的单元,真正实现代码的重用
      • 一次创建,多次调用
  • 语法

    • 声明

      • sub Name ##声明一个名字为Name的子程序
      • sub Name PROTO ##声明Name子程序,带原型
      • sub Name PROTO ATTRS ##声明Name子程序,带原型和属性
    • 创建子程序

      • sub Name Block ##Block为子程序的内容

        sub hello
        {
        print "hellow world!\n
        }
        
  • Perl子程序的基本规则

    • 子程序定义以sub关键字开头,后面接程序名
    • 子程序体用花括号括起来
    • 子程序可以在Perl中任何地方定义,或者从外部文件导入
    • 被传递的参数可以通过Perl的特殊变量@_访问

2、Perl子程序的调用

  • 子程序直接调用的语法

    • Name(LIST) ##函数名、圆括号和参数列表

    • Name LIST ##函数名和参数列表

    • &Name ##&和函数名

  • 用&调用

    • 适用于先调用后定义
    • 形式为:&subname; &sub subname{…}
  • 省略&符号

    • 适用于先定义后调用
    • 形式为:sub subname{…}; subname;
    • 有圆括号号时,也可以省略&符号
  • 省略括号

    • 适用于预声明/输入了子过程
  • 用do调用

    • 不需要用&
    • 形式为:do Name(LIST);
  • 说明

    • Perl自带很多函数,都是用大写命名,如BEGIN,INI
    • 应尽量避免全大写命名
  • 返回值

    • 子程序调用后,会以值的形式返回
    • 返回值可以为字符串、数字值、布尔值,甚至为空
    • 在默认情况下,子程序最后一个语句的值将作为返回值
    • 可以使用return来指定返回值
    • 子程序中,return之后的语句将被忽略,注意书写位置
  • 参数传递

    • 主函数和子函数的联系通过参数传递实现
    • Perl中参数传递的方式非常多样化
    • Perl中默认使用@_代表所有子程序的输入参数列表
    • 传递形式为:
      • &sub1($number1,$number2,$number3)
      • sub sub1 { my($number1,$number2,$number3) = @_; }
    • 传递数组参数
      • 形式同标量参数一样,子程序中用@_接收
    • 说明
      • 参数为数组时,子程序只赋值给一个数组变量
      • 子程序中多余的数组变量为空
      • 变量和数组可以同时传递

3、Perl子程序和局部变量

  • 局部变量
    • 变量有各自的作用域
    • 子程序中的变量,作用域一般在当前子程序中
    • 通过my来识别局部变量的特征
  • 子程序之间的变量值交互
    • 通过引用来传递变量

参考来源:https://www.jikexueyuan.com/course/1799.html

    原文作者:Davey_63dc
    原文地址: https://www.jianshu.com/p/e6b1c137aa45
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞