美文网首页
Perl 子程序省略&号和非标量返回值

Perl 子程序省略&号和非标量返回值

作者: PETJO | 来源:发表于2021-07-04 10:53 被阅读0次

7. 省略&号

  • Perl 通过语法规则判断只能是子程序调用,就可以像内置函数那样省略与号。
  • 如果 Perl的内部编译器已经见到过子程序的定义,那么通常也可以省略与号。
  • Perl子程序和内置函数同名,就必须使用与号调用。
  • 最好永远不要省略&号,避免歧义。
my @cards = shuffle(@deck_of_cards);    # &shuffle上的 &是多余的

sub division {
    $_[0]/$_[1];
}

my $quotient = division(355, 113);    # 用之前定义的 &division
print $quotient . "\n";    

sub chomp {
    print "Munch, munch!\n";
}

&chomp;    #必须使用 &,绝不能省略,内置函数歧义

8. 非标量返回值

  • 子程序不仅可以返回标量值,如果在列表上下文中调用它,还可以返回列表值。
  • wantarray函数测试,为真时返回列表,为假时返回标量。
  • 单写一个 return不给任何参数时,在标量上下文中的返回值就是 undef,在列表上下文中则是空列表。
my $fred = 11;
my $barney = 6;
my @array_rev = &list_from_fred_to_barney;
$" = ",";
print "@array_rev \n";

sub list_from_fred_to_barney {
    if ($fred < $barney) {
        $fred..$barney;
    } else {
        reverse $barney..$fred;
    }
}

相关文章

  • Perl 子程序省略&号和非标量返回值

    7. 省略&号 Perl 通过语法规则判断只能是子程序调用,就可以像内置函数那样省略与号。 如果 Perl的内部编...

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

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

  • Perl学习笔记1——标量数据与perl初步

    标量的概念 Perl使用标量来称呼单个事物,标量是Perl中最简单的一种数据类型。标量可分为两种:数字和字符串。在...

  • Perl语言学习(二)Perl数据类型

    1、Perl数据类型之标量 标量:Scalar,以$符号开头数字标量:值为”数字“的标量Perl中的数字全部为双精...

  • Perl学习01之标量数据

    本篇主要介绍Perl中数字标量和字符串标量的相关基础知识;首发于本人公众号:pythonic生物人 更好的阅读体验...

  • Perl return操作符

    6. return 操作符 return 函数在子程序,块或do函数的末尾返回某个值,返回值可以是标量,数组或哈希...

  • Perl标量

    标量可以是整数、浮点数、字符、字符串、段落或者一个完整的网页。 数字标量 标量通常是一个数字或者字符串。 字符串标...

  • Perl基础系列合集

    ​Perl学习01之标量数据 Perl学习02数组和哈希使用 Perl学习03之流程控制结构 Perl学习04之I...

  • Perl 定义和调用子程序

    1. 定义和调用子程序 定义子程序格式:sub 程序名 {}。 调用子程序:& 程序名。 子程序返回值:子程序都有...

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

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

网友评论

      本文标题:Perl 子程序省略&号和非标量返回值

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