perl语言入门总结-第4章-子程序

子程序定义和返回值

sub sum{
    print "调用了子程序\n";
    $a + $b; #后一行为返回值
}
$a=1;
$b=33;
$s =∑ #34 调用子程序

子程序中的参数,参数固定(下面例子只能2参数),程序第一个参数为$_[0],第二个为$[1],依次类推

sub max {
    if($_[0] > $_[1] ){
        $_[0];
    }else{
        $_[1];
    }
}

$n = & max(10,15); #结果为15

子程序中私有变量

sub max {
    my($m,$n) = @_;
}

限制参数长度

sub max{
    if(@_ != 2){
        print "waring! &max arguments not match"
    }
}

变长参数列表

sub max {
    my($max_num) = shift @_; #数组中的第一个值
    foreach (@_){
        if($_ > $max_num){
            $max_num = $_;
        }
    }
    $max_num;
}

$maximum = &max(1,6,10,5,60,9);
print $maximum

关于my变量

my($num) = @_; #列表上下文
my $num = @_; #标题上下文
my(a,b) = @_;

最好使用 use strict;

use 5.012 #自动加载strict编译指令

return操作符

如果像在子函数,foreach提前结束可使用return操作符。

省略&与号

一般情况可省略, 如果像定义了与内置函数同名,如chomp,则不能省略,调用必需为&chomp;

非标题返回值

sub sum{
   1..10;
}

持久性私有变量state , 如果在strict模式下,使用全局变量会报错。

use strict;
use feature qw(state); 

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

&marine; #1
&marine; #2
&marine; #3

原文地址:https://www.cnblogs.com/qinzb/p/9185459.html

时间: 2024-10-08 15:31:28

perl语言入门总结-第4章-子程序的相关文章

Perl语言入门:第六章习题:处理用户所指定的名字并汇报相应的姓。

37 print "\n----------------------------------_exercise_6_1--------------------------\n";     38 my %bless_function = ( #hash may be a lexical variable     39    "constructors" => "default_values",     40    "error_ha

perl语言入门总结-第2章

$what ='steak'; print "fred ate $n ${what}s.\n"; 布尔值 如果是数字0为假, 如果是空字符串''为假, 如果即不是数字也不是字符串,那就先转成数字或字符串再行判断. 字符串'0'也为假 获取用户输入 $line = <STDIN>; 去除最右边换行 $text ="a line \n"; chomp($text); print $text; undef值 如果是数据相当undef值为0, 如果与字符串相加则

perl语言入门总结-第3章-列表与数组

1-列表list指的是标题的有序集合, 而数组(array)则是存储列表的变量. 更精确地说,列表指的是数据,而数组指的是变量. 访问数组中的元素 $fred[0] = "yabba"; $fred[1] = "dabba"; $fred[2] = "doo"; $number = 2.71111; print $fred[$number-1]; #dabba 如果下标不是整数,会舍去小数. print $fred[145] #如果不存在下标则返

perl简洁编程,《Perl语言入门(第五版)》读书笔记

整理一下好多年前放在hi.baidu上的笔记! perl简洁编程,<Perl语言入门(第五版)>读书笔记20110316! 书很早就买了,简单翻翻就扔下了!最近买了ipad,良好的阅读体验,用来看书,感觉书又能看进去了!不能白看一遍,整理一下阅读笔记! Perl的程序竟能如此简洁!!! sub division  {     $_[0]/$_[1]; } $_即为接收的数组,同时数据运算后,直接返回,省略了return. sub max {    my($max_so_far)  =  shi

Perl语言入门(中文版)(第6版) 东南大学出版社

第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? Larry干吗不用其他语言? Perl算容易,还是算难? Perl怎么会这么流行? 现在的Perl发展得怎么样了? 哪些事情最适合用Perl来做? 哪些事情不适合用Perl来做? 如何取得Perl? CPAN是什么? 如何得到Perl的技术支持? 还有别的技术支持方式吗? 如果发现Perl有bug

Perl语言入门:第九章 示例程序和代码

#! /usr/bin/perl use strict; use warnings; print "\n----------------------------------_substitutions_with_s///--------------------------\n";$_ = "He's out bowling with Barney tonight.";s/Barney/Fred/;print $_."\n";s/filehandl

Perl语言入门--3--文件读取与写入

现有文件test.txt,内容为:"123\n456" 1,打开文本test.txt #!/usr/bin/perl open d,"test.txt"; d 为文件句柄,指向打开的文件 2,逐行读取文本test.txt #!/usr/bin/perl open d,"< test.txt"; while(<d>){ print $_; } close d; 结果:123 456 或者:print <d>; 结果:同

Perl语言入门

第二章.标量数据 标量(scalar):数字或者字符串 数字均以dobule类型保存,没有整数,可以插入下划线方便阅读 123456789和 123_456_789表示同样的效果. 支持其他进制的整数变量,同样支持插入下划线方便阅读. 0377            #8进制,以0开头,表示十进制下255 0xff              #16进制,以0x开头,表示十进制下255 0b11111111  #二进制,以0b开头,表示十进制下255 字符串,就是一个字符序列,没有长度大小,可以填

Perl语言入门--2--perl的运算符

一.算数运算符 **:是幂 结果不能超过数的范围 当指数为小数时 底数不能为负数 %:取余数  两边的操作数为整数,如果不是则要截取,把所有的小数部分去掉 注意:当一个字符串参加运算,需要转化为整数时,如果不能转化为整数则值为零, '2'+1=3   'a'+1=1 二.数字比较运算符 大于小于等于   :比较结果为真或非零 ,假或零 <=> : 比较运算   $a <=> $b 当a大于b时:值为1 当a小于b时:值为-1 当a等于b时:值为0 用这个运算符的时候,自动把操作数转