美文网首页
Perl 子程序中的私有变量

Perl 子程序中的私有变量

作者: PETJO | 来源:发表于2021-06-27 13:21 被阅读0次

3. 子程序中的私有变量

  • Perl 随时可以借助 my 操作符来创建私有变量,称之为词法变量(lexical variable)。
  • 封闭语句块中的私有变量,与语句块之外任意地方的同名变量之间互不影响。
  • perl 允许省略语句块中最后一个分号,但实际上需要代码简单到整个语句块内只有一行时才可以省略。
sub max { # 创建私有变量,几乎所有的 perl子程序类似程序代码开头
    my ($m, $n); # 封闭语句块中的私有变量,与外部变量互不影响
    ($m, $n) = @_; # 将参数赋值给变量
    if ($m > $n) {
        $m;    # perl 允许省略语句块中最后一个分号
    } else {
        $n;    # 但实际上只有代码简单到整个语句块内只有一行时,才可以省略
    }
}

my $result = &max(1, 2, 3, 4, 5);
print $result . "\n";

# 上述代码的简洁写法
sub max {
    my ($m, $n) = @_;
    if ($m > $n) { $m } else { $n }
}

$result1 = &max(6, 7, 8, 9, 10)
print $result1 . "\n";
  • 变长参数列表,perl常常把很长的列表(长度不限)作为参数传给子程序。
  • 通过检查@_数组的长度来判断参数个数是否符合预期。
# 变长参数列表
sub max { 
    if (@_ != 2) { # 通过检查 @_ 数组的长度来判断参数个数是否符合预期。
        print "WARNING! &max should get exactly two arguments!\n"
    }
    my ($m, $n) = @_;
    if ($m > $n) { $m } else { $n }
}

$result3 = &max(11, 12, 13, 14, 15)
print $result . "\n";

# 改写&max,使之能够接受任意数目的参数
my $maximum = &max(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
print $maximum . "\n";

sub max {
    my($max_so_far) = shift @_;
    foreach (@_) {
        if ($_ > $max_so_far) {
            $max_so_far = $_;
        }
    }
    $max_so_far;
}

相关文章

  • Perl 子程序中的私有变量

    3. 子程序中的私有变量 Perl 随时可以借助 my 操作符来创建私有变量,称之为词法变量(lexical va...

  • Perl 持久化私有变量

    9. 持久化私有变量 在子程序中用 my操作符可以创建私有变量,但每次调用子程序时,这个私有变量都会被重新定义。 ...

  • Perl子程序(函数)和引用

    Perl子程序(函数) Perl子程序也就是用户自定义的函数 Perl子程序可以出现在程序的任何地方,语法格式如下...

  • 【perl】perl的子程序(三)——局部变量

    局部变量 变量有各自的作用域 子程序中的变量,作用于一般是在当前子程序中 用my来识别局部变量的特征 local定...

  • Perl语言学习(七)Perl子程序

    七、Perl子程序 1、Perl子程序的基本概念 子程序的定义执行一个特殊任务的一段分离的代码可以重复使用的一段代...

  • 【Perl】——4. 子程序

    2021.2.4持续更新中。。。 《Perl语言入门》 1. 子程序的概念 子程序是一段可以重复执行特殊任务的代码...

  • perl学习-day5-Perl子程序(函数)

    Perl子程序也就是用户定义的函数 1:子程序语法格式 sub subroutine{statements;} 调...

  • 第五章 Perl函数

    Perl中,函数(又称子程序)是一个封装的行为单元。函数可以有自己的名字,可以接受输入,可以产生输出,它是Perl...

  • 【Perl编程-4】子程序+引用

    Perl 子程序也就是用户定义的函数。Perl 子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使...

  • 【perl】perl的子程序——概念

    子程序的概念 定义 执行一个特殊任务的一段分离的代码,可以重复使用 在perl中可以出现在程序的任何地方 可以理解...

网友评论

      本文标题:Perl 子程序中的私有变量

      本文链接:https://www.haomeiwen.com/subject/vykxultx.html