perl -- 子过程-->语法

 

1、声明一个命名子过程,但不定义:

sub NAME

sub NAME PROTO

sub NAME        ATTRS

sub NAME PROTO  ATTRS

如果要定义一个子过程,只要在上面加上一个BLOCK就可以了

sub NAME PROTO  ATTRS BLOCK

PROTO和ATTRS表示原型和属性,相对于NAME和BLOCK不重要,NAME和BLOCK是基本部分,其他的可以省略。

2、没有NAME的形式也是可以的 ,你必须提供一个调用子过程的方法。因此你必须保存返回值,因为这种形式的sub声明方法不但在编译的时候编译,同时也产生一个运行时的返回值,所以我们就可以保证保存它:

$subref = sub BLOCK;

也可以用下面的方法引入在另一个模块中定义的子过程:

use MODULE qw (NAME1 NAME2 NAME3…);

3、直接调用子过程的方法

NAME(LIST)     #有圆括弧时,&是可选的

NAME LIST       #如果预声明/输入了子过程,那么圆括弧是可选的

&NAME   #把当前的@_输出到子过程,并且绕开原型

4、间接调用子过程,(通过名字或引用),可以使用下面的任何一种方法:

&$subref(LIST)        #在间接调用的时候,&不能省略

$subref->(LIST)        #

&¥subref       #把当前的@_输出到该子过程

 

#:在正式的情况下,一个子过程的名字包括&前缀,但是通常情况下&是可选的;

#:如果预先定义了子过程,那么圆括弧是可选的;

#:在只使用子过程的名字的时候,&不能省略;

例如:1)子过程名字被用作一个参数来判断是否已经定义过;

         2)用$subref = \&name来获取一个命名子过程的引用的时候;

         3)$subref->(),则不需要&;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值