`
linchao198401
  • 浏览: 7230 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Perl学习笔记-子程序

    博客分类:
  • Perl
阅读更多
  1. 某个函数可以是子程序,也可以是Perl自带的函数。
  2. Subroutines意思就是自定义的而非系统自带的函数。
  3. 使用sub来定义子程序,例如 sub sayHello { print "Hello, World"}。
  4. 子程序的定义是全局的。没有私有子程序。如果两个子程序的名字一样,后面的子程序将会覆盖前面定义的子程序。
  5. 子程序使用&符号来调用。例如&sayHello;
  6. 所有的Perl子程序默认都是有返回值,Perl的设计者觉得使用return是种浪费。
  7. 最后一个表达式会作为返回值返回。
  8. 子程序可以自带参数,而且参数的个数不限。每次子程序都把变长的参数放入@_的列表里面。子程序的第一个值放入$_[0],第二个值放入$_[1]。
  9. 如果@_的参数个数跟预想的个数不一样,那么将会用undef。@_就是相当于用参数来初始化的列表。
  10. @_对于子程序都是不一样的,都是子程序私有的。每个子程序都会被创建一个新的@_来使用。
  11. 使用my可以用来初始化私有变量,变量可以私有,子程序不能私有。my可以是列表,例如my($param_1, $param_2),当my后面不是列表的时候,只能声明一个私有变量,例如my $param_1, $param_2。那么后面那个变量不是私有的。
  12. 可以使用@_ != 2  来判断是否参数的个数为2, 尽管@_是一个列表,但是当在!= 2这样的上下文中,就会变成标量使用了。
  13. 因为Perl默认是一种宽容的语言,如果你想要解释的时候有严格的语法控制,那么可以在文件的开头处添加 use strict;
  14. Perl的子程序还是可以显示的使用return来进行返回的。
  15. 两种情况下可以省略调用子程序的&,一种是调用之前已经把自定义的子程序放到调用语句之前,一种就是调用Perl自带的函数,两个的意思都是一样的。
  16. Perl允许自定义的子程序和自带的函数名字一样,如果这个时候要使用自定义的子程序的话,那么加上&符号是必须的。

答案:

 

sub above_average {
    my $result = 0;
    for (@_) {
        $result += $_;
    }
    $average = $result / @_;
    print "average is: " . $average . "\n";
    @results = ();
    for (@_) {
        if ($_ > $average) {
            push @results, $_ . "\n";
        }
    }
    @results;
}




sub total {
    my $result = 0;
    for (@_) {
        $result += $_;
    }
    $result;
}

@oneToThounsand = (1..1000);
print "----------result-------------\n";
print above_average(1200, @oneToThounsand);
#print "----------result-------------\n";
#print total(@oneToThounsand);

# @inputs = qw (122 223 444 55);
#print "----------result-------------\n";
#print total(@inputs);
#print "\n";
# @inputs = <STDIN>;
#print "----------result-------------\n";
#print total(@inputs);
#print "\n"

 

分享到:
评论

相关推荐

    perl学习笔记

    以下是对Perl学习笔记中提到的关键知识点的详细说明: 1. **标量**: 标量是Perl中最基本的变量类型,用于存储单个值,如字符串或数字。变量名前缀是美元符号“$”。例如,`$first_name = "Melanie"`定义了一个名...

    Perl学习笔记

    ### Perl学习笔记关键知识点 #### 1. Perl简介 - **定义**:Perl是一种脚本语言,被设计用于处理文本文件、提取信息并生成报告。它由Larry Wall在1987年创建,目的是为了弥补当时其他语言如C、sed、awk等在处理文本...

    Perl 学习笔记

    ### Perl学习笔记 #### 第1章:Perl简介与基本语法 - **Hello, World!**:Perl中的第一个程序通常是从“Hello, World!”开始的。例如: ```perl #!/usr/bin/perl print "Hello, world!\n"; ``` 或者简化为: ...

    Perl中的子程序学习笔记

    Perl中的子程序是执行特定任务的代码块,它有助于代码重用并提升程序的可读性。子程序可以是系统提供的,也可以是用户...子程序的学习对于Perl开发者来说是非常重要的,它能够帮助编写出结构良好、易于维护的Perl代码。

    perl学习笔记,让你更容易入门

    ### Perl学习笔记:快速入门与面向对象编程 #### 基础概念介绍 Perl是一种功能强大的脚本语言,被广泛应用于系统管理、网络编程、文本处理等领域。它具有丰富的内置函数和灵活的数据类型,能够方便地处理各种复杂...

    perl的学习笔记1

    这份"perl的学习笔记1"很可能是作者在深入学习Perl过程中积累的宝贵资料,包括他自己编写的小程序和学习心得。 首先,Perl语言的核心特性是其灵活性和适应性。它的语法混合了C、sed、awk等语言的特点,使得它既适合...

    Perl语言入门学习笔记.docx

    1. 定义:使用`sub`关键字定义子程序,如`sub my_function {...}`。 2. 调用:使用子程序名(前加`&`)调用,如`&my_function`。 3. 参数传递:通过括号传递参数列表,如`my_function($arg1, $arg2)`。 4. 私有变量...

    Note of Learning Perl--Filehandles and File Tests

    《Perl学习笔记——文件句柄与文件测试》 在Perl编程中,文件处理是不可或缺的一部分。文件句柄和文件测试是Perl操作文件的核心工具,它们允许我们读取、写入和检查文件的状态。本文将深入探讨这两个关键概念,并...

    Note of Learning Perl--More Control Structures

    五、子程序(Subroutines) Perl中的函数定义使用`sub`关键字,可以接受参数并返回值: ```perl sub add { my ($a, $b) = @_; return $a + $b; } print add(2, 3); # 输出5 ``` 六、块和标号 1. 块:以`{}`...

    Linux程序设计-学习笔记.doc

    Linux 程序设计学习笔记 本文是一份 Linux 程序设计学习笔记,涵盖了 Linux 的基本概念、Linux 程序的类型、环境变量、C 语言编译器、开发系统导引、头文件、库文件等知识点。 一、Linux 基本概念 Linux 是一个类...

    perl ppd package

    PadWalker是一个Perl模块,它允许程序员查看Perl代码中未定义的变量和函数的内部结构,包括局部变量、匿名子程序等。这个工具在调试和理解复杂的代码逻辑时非常有用,因为它可以深入到Perl的执行垫(pad),也就是...

    2009 达内Unix学习笔记

    对目录,是增删文件与子目录。 (注 删除没有写权限的文件可以用 rm -f ,这是为了操作方便,是人性化的设计)。 x 执行权限;对目录,是进入该目录 - 表示没有权限 形式 - rw- r-- r-- 其中 第一个是文件类型(-...

    Linux程序设计_学习笔记.doc

    总的来说,学习Linux程序设计意味着深入理解操作系统的基本原理,熟悉C语言编程,掌握Shell脚本编写,以及灵活运用系统资源。这对于在互联网行业中进行系统管理、软件开发和自动化运维等工作至关重要。通过不断实践...

    WebKNotes-开源

    WebKNotes可以应用于个人知识管理,比如记录学习笔记、项目经验等;在团队协作中,它可以帮助成员共享信息,提高团队的知识共享和协作效率;此外,对于教育机构或研究团队,它也是一个有效的资料库和研究笔记管理...

    php_memo_latest:phpを使用したメモアプリケーション

    在本项目"php_memo_latest"中,我们看到的是一个基于PHP的简单笔记应用程序,它可能提供了创建、编辑和查看笔记的功能,这对于学习和理解PHP Web开发的基本原理非常有帮助。 【PHP框架和MVC模式】 尽管这个项目...

Global site tag (gtag.js) - Google Analytics