• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Perl的子程序(二)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在Perl中可以自己创建子程序(Subroutine):

关键字sub,子程序名以及用花括号封闭起来的代码块。

                sub  marine { ... }

子程序名与标量的命名空间是不同的两个部分。

 

子程序的返回值:最后一次运算的表达式即是默认的返回值。也可以用return来显式的返回,这样之后的语句不会执行。

                       在标量上下文返回的会是标量,在列表上下文返回的也是列表。

 

子程序中的参数:子程序内部可以使用@_,$_[0],$_[1],$_[2],,,这样的变量来表示。@_变量是子程序私有变量,递归调用时,不会出错。

                       在子程序调用时,在子程序名后用括号括住的列表表达式。

                       $n = &max(10,15);          #10后被送到$_[0],15被送到$_[1],@_=(10,15),在标量上下文值为2;

 

子程序私有变量定义: my关键字来声明词法变量(lexical variable)。           my($m,$n) = @_;  #创建私有变量并赋值。

                              不仅可以定义在子程序中,还可以定义在if, while, foreach中。

                               只能用来声明单个标量/变量,列表/数组。          my $fred, $barney;    #错误,第二个变量无法声明。

持久性私有变量: 用关键字state来声明,在子程序的多次调用中保留变量之前的值。作用域仍然是只存在于子程序内部。

                        sub  marine  {state $n=0; $n+=1; print; }

                        也可以用来声明数组和哈希类型。   state @number。

 

子程序的调用:子程序可以通过 (&+子程序名)的方式来调用。

                    如果编译器之前看到过子程序的定义,那么可以不加&,而直接调用子程序。

                    如果Perl可以通过语法规则直接判断它只能是子程序调用,那么也可以省略 &。

                            也就是说只要你将参数列表放进括号内,就一定是子程序调用。

 

use strict;        #强制要求使用一些严格的,良好的编程风格。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
perl学习之:read发布时间:2022-07-22
下一篇:
perl输出重定向发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap