1.定义一个方法

  Perl使用sub定义方法。

  语法:

  sub 方法名称{方法体}

2.调用一个方法

  Perl直接使用方法名称调用方法。

  调用方式有以下四种:

    方法名称;

    &方法名称;

    方法名称();

    &方法名称();

  说明:方法调用可以再任何位置,可以在方法前、后调用,也可以在方法体内部调用。

  

3.传递参数

  Perl通过方法名后面的括号将参数列表传递到方法体内。例如:function_name("param1","param2"...);

  方法体内部通过@_接收参数。@_是数组。取值的方法也可以采用下标的形式取得。

  关于传值和传引用:

    1.直接将值写进方法后面的括号内就是传值,将标量($xxx)、数组(@xxxx)、哈希结构(%xxx)放进去就是传引用。

    2.如果没有改变变量值的需求的情况下,不推荐使用@_[i]的方式进行取值。首先,会导致引用对象的改变,其次,并不能明确表明代表的是什么意思。

      可使用($param1,$param2...)=@_; 的方式取值运算。

4.方法的返回值

  可以使用return显示的返回值。也可不用return。

简单示例,帮助理解

 #!user/bin/env perl -w
#定义一个函数
sub fun_say_hello{
print "hello,world!\n";
} #引用函数
fun_say_hello;
&fun_say_hello;
fun_say_hello();
&fun_say_hello(); #传递参数
sub fun_say_hello_with_name{
($name) = @_;
print "hello,$name!\n";
} fun_say_hello_with_name("Tom"); #传值和传引用
sub fun_change_name1{
($fname) = @_;
$fname = "Jack";
} sub fun_change_name2{
@_[] = "Jack";
} $name = "Tony";
fun_change_name1($name);
print "$name\n";
fun_change_name2($name);
print "$name\n"; #返回值
sub check_login{
($name) = @_;
if ($name eq "Tony")
{
return "welcome\n";
}
else
{
"sorry\n";
}
} print check_login("Tony");
print check_login("Jack");

Perl入门 - Perl方法的使用的更多相关文章

  1. Perl入门

    Perl 是一门开源的脚本语言,由 Larry Wall 所创造,该语言以实用,快速开发为主要目标,与当前流行的面向对象结构化编程有些格格不入,但这并不妨碍 Perl 被广泛流传和使用,世界范围内围绕 ...

  2. Perl的调试方法

    来源: http://my.oschina.net/alphajay/blog/52172 http://www.cnblogs.com/baiyanhuang/archive/2009/11/09/ ...

  3. perl入门知识(2)

    交互式编程你可以在命令行中使用 -e 选项来输入语句来执行代码,实例如下:$ perl -e 'print "Hello World\n"'输入以上命令,回车后,输出结果为:Hel ...

  4. Perl入门(七) Perl脚本的调试

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/sunshoupo211/article/details/32711165 编程中错误不可避免.调试可 ...

  5. Linux下安装Perl和Perl的DBI模块

    今天在虚拟机测试shell脚本的时候,有些命令使用不了. 比如说 mysqlhotcopy ,它提示Perl的版本太低. 我用的 RedHat9 的Perl才5.8.0版本...(2002年以前的) ...

  6. perl 面向对象 new方法

    [root@wx03 test]# cat Scan.pm package Scan; sub new{ my $class = shift; my $self={ 'a'=>11, 'b'=& ...

  7. ---perl 模块安装方法

    http://blog.csdn.net/lincy100/article/details/7333794 $ perl -MCPAN -e shell install Log::Log4perlin ...

  8. perl入门知识(3)

    引用       在很多场合下使用引用传值,能在很大程度上提高代码的运行效率.       定义一个引用在变量名前加”\”就可以了,如:       $ra=\$a;       $rb=\@b;   ...

  9. perl 入门知识(1)

    <一> 语句及注释: Perl 语句以分号(;)结尾,用 # 作为一行的注释,没有其它语言中那种跨行的注释.代码块用大括号围起来,这个和 C 类似,但这个大括号在有些地方是强制要求,如在 ...

随机推荐

  1. angularjs 路由切换回到顶部

    angularjs路由切换  页面不会回到顶部 问题: 在angularjs中  ui-sref或者$state.go(),通过路由切换页面,发现新打开的路由页面仍然停留在上一次的路由页面访问的位置. ...

  2. C实现进程间通信(管道; 共享内存,信号量)

    最近学习了操作系统的并发:以下是关于进程间实现并发,通信的两个方法. 例子: 求100000个浮点数的和.要求: (1)随机生成100000个浮点数(父进程). (2)然后创建4个后代进程,分别求25 ...

  3. spring boot 整合 poi 导出excel

    一. 第一种方式 1.首先从中央仓库中导入架包Poi3.14以及Poi-ooxml3.14. <dependency> <groupId>org.apache.poi</ ...

  4. mybatis精讲(七)--动态sql

    目录 常用标签 if元素 choose元素 trim元素 forearch bind元素 在我们传统的开发中我们会通过拼接sql达到数据库的操作.java中的拼接不仅效率低下而且代码很长不易维护.而M ...

  5. 高性能可扩展mysql 笔记(三)Hash分区、RANGE分区、LIST分区

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.MySQL分区表操作 1.定义:数据库表分区是数据库基本设计规范之一,分区表在物理上表现为多个文件, ...

  6. Java实现 蓝桥杯 基础练习 特殊的数字

    基础练习 特殊的数字 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2 问题描述 153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333.编程求所 ...

  7. Java实现蓝桥杯 算法提高 身份证号码升级

    算法提高 身份证号码升级 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位 ...

  8. Java实现 蓝桥杯VIP 算法提高 3-2求存款

    算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计 ...

  9. Java实现 LeetCode 102 二叉树的层次遍历

    102. 二叉树的层次遍历 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 2 ...

  10. Java实现 LeetCode 14 最长公共前缀

    14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",&quo ...