perl -- 子过程-->语法

前端之家收集整理的这篇文章主要介绍了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->(),则不需要&;

猜你在找的Perl相关文章