子程序的定义是全局的,不需要事先声明。若重复定义子程序,后面的覆盖前面的。

sub marine {

$n +=1;

print " Hello ,sailor number $_ ! ";

}

调用:&marine;

返回值:最后一次的运算结果会被当作返回值。

变量:所有变量默认为全局变量

参数:@_为subroutine 的私有变量。若恰有全局变量@_ 则调用子程序时存起,子程序结束会自动恢复。

$_[0]  $_[1] $_[2]  ...存于数组变量@_

sub max {

if (@_ != 2)  { print  "  “};

if ($_[0] > $_[1]) {

print "  ";

}

}

&max(13,29) ;

example2:

$maxmun = &maxh(2,8,32,44,9);

sub maxh {

my ($max_so_far) = shift @_ ;

foreach (@_)  {

if ($_ > $max_so_far)  { $max_so_far = $_ };

}

$max_so_far;

}

私有变量: my

sub max {

my ($m,$n) = @_ ;  #子程序私有变量;和子程序外的世界互不相犯

}

作用域受限于定义它的最内层语句块/文件 #语句块为foreach等。

my 操作不会改变赋值时的上下文

my  ($num)  = @_  ;  # 列表上下文  等同于  ($num) = @_

my  $num = @_ ; #标量上下文  等同于  $num = @_

my $fred,$baney  # 错,没有声明$baney

return:立即停止执行,并返回某值。

sub which {

foreach (  )  {

if  ( )  {

return  $_;

}

}

return -1 ;  #或省略return   指查无此值,没有找到符合条件的元素

}

省略&号:

和内嵌函数同名时,不能省略&。  比如自定义一个函数chomp() ,调用时必须使用&chomp

非标量返回值:

sub  listx  {

if ($a < $b) {

$a..$b

} else {

reverse $a..$b

}

@c = &listx(11,6)  ;#  11,10,9,8,7,6

持久性私有变量:state  多次调用子程序期间,保留该变量每次的值。适用于未定义的全局变量这种情况,my私有变量每次调用结束,就会抛弃存值。

转载于:https://www.cnblogs.com/lelin/p/11206190.html

Subroutine 子程序 Perl 第四章相关推荐

  1. 第四章 Rails 背后的 Ruby

    第四章 Rails 背后的 Ruby 有了第三章中的例子做铺垫,本章将为你介绍一些对 Rails 来说很重要的 Ruby 知识.Ruby 语言的知识点很多,不过对一个 Rails 开发者而言需要掌握的 ...

  2. 计算机组成原理第04章在线测试,计算机组成原理第四章单元测试(二)(含答案).docx...

    PAGE PAGE 1 第四章存储系统(二)测试 书生 1.32位处理器的最大虚拟地址空间为 ????A.2G ????B.4G ????C.8G ????D.16G 2.在虚存.内存之间进行地址变换 ...

  3. 第四章语法分析和语法分析程序

    第四章语法分析和语法分析程序 4.1_自顶向下的语法分析 4.1.1_自顶向下分析过程的基本特点 ①消除文法直接左递归 ②回溯的消除及LL(1)文法 4.1.2_递归下降法 4.1.3_预测分析法(也 ...

  4. 【Java数据结构与算法】第四章 栈实现综合计算器

    第四章 栈实现综合计算器 文章目录 第四章 栈实现综合计算器 一.栈 1.介绍 2.应用场景 3.思路 4.代码实现 二.综合计算器 v1.0 1.思路 2.代码实现 三.前缀.中缀和后缀表达式规则 ...

  5. 第四章 构建LAMP网站平台、部署企业应用

    防伪码:教诲如春风,师恩似海深,桃李满天下,春晖遍四方 第四章.LAMP平台部署及应用  本章主要讲解PHP运行环境的构建+部署使用phpMyAdmin+扩展实验(搭建企业网站) 一.LAMP平台概述 ...

  6. itpt_TCPL 第四章:函数和程序结构

    2016.08.30 – 10.09 个人英文阅读练习笔记(极低水准). 08.30 第四章:函数和程序结构 函数能够将大型的计算任务分解为多个小型的计算任务,并且程序员还能够利用别人已经编写好的函数 ...

  7. 第四章web服务器之httpd

    文章目录 第四章 web服务器 1.1 www简介 1.1.1 网址及HTTP简介 1.1.2 HTTP协议请求的工作流程 1.2 www服务器的类型 1.2.1 仅提供用户浏览的单向静态网页 1.2 ...

  8. 读书笔记:汇编语言 第三版 王爽 清华出版社 前言 章一 章二 章三 章四 章五

    汇编语言 第三版 王爽 清华出版社文档记录创建 2020年8月9日15:21:11初稿完成 2020年9月5日15:38:22前言汇编语言,CPU提供的机器指令的助记符的集合不同处理器,机器指令可能不 ...

  9. 计算机组成置NVCZ为零,《计算机组成原理》第3版PPT电子课件教案-第四章 指令系统.ppt...

    第 四 章 指 令 系 统 P127 本章介绍指令的一般格式和指令寻址方式.指令分类等. 4.1 指令系统的发展与性能要求 程序:是由一系列的指令序列组成, 解决某一具体问题. 指令:是计算机硬件系统 ...

最新文章

  1. 如何创建systemd定时任务
  2. 安卓当下最流行的吸顶效果的实现(转)
  3. 紘康单片机_紘康HY11P14 - SOC芯片 - 产品展示 - SOC芯片_IC芯片pcba开发_深圳市联泰威电子有限公司...
  4. php window.onload,window.onload 触发时机问题
  5. DOMContentLoaded与load的区别
  6. [FLASH_AS]Flash as3 addEventListener事件监听传递参数
  7. 125.数据传输方式
  8. 鸟哥的Linux私房菜(基础篇)- 一个简单的 SPFdisk 分割实例
  9. 一段把mp4中的音频提取并保存在原目录的python脚本
  10. 日志处理两大生态Splunk和ELK深度对比
  11. SOAP HTTP绑定
  12. leetcode - Balanced Binary Tree
  13. 基于半同步/半反应堆线程池实现的HTTP解析服务端程序
  14. php程序控制结构,PHP 控制结构
  15. MVC 特性使用总结
  16. flink源码分析_Flink源码分析之深度解读流式数据写入hive
  17. opsForValue() 的 set 用法
  18. html地址选择器,你应该知道的五种地址选择器
  19. 论文阅读:Reducing Transformer Depth On Demand With Structured Dropout
  20. 我是怎么从一家小公司通过社招去了阿里?

热门文章

  1. python打印异常_python异常输出
  2. 打印折痕(左神2020)
  3. 信息论基础(包含最大熵模型)
  4. linux递归强行删除目录和文件
  5. java项目ssh中文乱码_【SSH】Struts2处理中文乱码问题总结
  6. 安卓将数据库里Fri Jun 22 19:50:49 GMT+08:00 2018格式转化为正常格式
  7. CAD一个命令快速绘制箭头,真的是敲极快!
  8. 【WebService】wsdl配置详解以及使用注解修改wsdl配置
  9. 国外的FLAG是指什么?
  10. android自定义view,时间刻度尺,时间轴,视频轴