子程序

定义子程序(可以在程序的任意位置)

关键字sub、子程序名(不包含与号)以及用花括号封闭起来的代码快。

如:sub marine{

  $n+=1;

  print "hello,sailor number $n!\n";

}

调用子程序:&marine;

返回值

所有子程序都会有返回值。最后一次运算的结果是什么就将这个运算结果当作改程序的返回值。

如:sub sum_of_a_and_b{

  $a+$b;

  print "Hey,I'm returning a value now\n";

}

此时返回值为1,因为print执行成功了。

参数

如:$n=&max(10,15);

参数列表将会传入子程序中,Perl会自动将参数列表化名为特殊的数组标量@_,该变量在子程序执行期间有效。子程序可以访问该数组以判断参数的个数和值。

所以函数max可以写成;

sub max{

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

  @_[0];

  }

  else {

  @_[1];

  }

}

子程序的私有变量

利用my操作符创建私有变量,又名词法变量。

sub max{

  my($m,$n);//定义

  ($m,$n)=@_;//赋值

  if($m>$n){$m;}else{$n;}

}

use strict编译命令

使用了use strict严格的约束,即按照严格的编程标准来编程。

首先你在定义一个新的变量时必须在变量前面加上my。当然$_ @_等这些默认变量自然不用加my.

代码过长时最好加上use strict。

return 操作符

作用:让程序执行到一半就停下来。

#!/usr/bin/perl
use strict;
use warnings; my @names=qw /fred barney betty dino wilma pebbles bamm_bnam/;
my $res=&find_elememt("dino",@names);
if($res != -)
{
print "ths dino's index is $res .\n";
}
else{
print "there is no dino.\n";
}
sub find_elememt{
my ($res,@elememts)=@_;
foreach (..$#elememts) {
if($res eq $elememts[$_]){
return $_;
}
}
-;
}

perl学习笔记三的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  3. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  4. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  5. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  6. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  7. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

随机推荐

  1. 汕头市队赛 SRM 07 A 你的麻将会排序吗

    A 你的麻将会排序吗 SRM 07 曾经有过一些沉迷日麻的小孩纸,后来呀,他们都去寻找自己的世界了. kpm也是这样的小孩纸.他想有一只自动整理牌的机器.当麻将以给定的顺序进入机器时,通过机器的运转, ...

  2. Html5学习进阶二 画布

    canvas 元素用于在网页上绘制图形. 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canv ...

  3. 【查看linux配置】查看linux系统常用的命令,Linux查看系统配置常用命令

    一.linux CPU大小  cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep &qu ...

  4. xCode中去除“Implicit declaration of function 'sysctl' is invalid in C99” 警告

    http://blog.csdn.net/dreambegin/article/details/8609121 一般出现该问题是因为通过C调用了unix/linux 底层接口,所以需要调整c语言的编译 ...

  5. 嵌入式Linux下Camera编程--V4L2【转】

    转自:http://blog.csdn.net/fwqlzz/article/details/51126653 版权声明:本文为博主原创文章,未经博主允许不得转载. USB video class(又 ...

  6. BigDecimal 使用 静态方法总结

    转自:http://myrecord.top/?post=18 -------------千位加, public static String getQs(String old){ boolean re ...

  7. WCF 小程序案例以及序列化的使用

    using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;u ...

  8. [scrapy] 爬了第一页就停止 filtered off site request to

    我碰到这个问题的原因是 allowed_domains 写错了 至于还有没有别的原因就不知道了

  9. (2)WPF XAML

    一.创建一个空白界面 <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.co ...

  10. hdu6038

    hdu6038 分析 求函数 \(f\) 的构成方案,\(f\) 确定下来后,\(f\) 和 \(b\) 的值也是一一对应的了( \(f(i)=b_{f(a_i)}\) ),观察 \(a\) 数组,代 ...