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

Perl学习笔记-列表和数组

    博客分类:
  • Perl
阅读更多
  1. 列表是标量的有序集。数组是包含列表的变量。
  2. 列表是数据,数组是变量名。
  3. 列表的每个元素都是一个独立的标量值,这些值是有序的。
  4. 一个列表可以包含数字,字符串,undef值,和任意其他不同类型的标量值组合。
  5. 列表可以包含任意数量的元素,从0到填满整个内存。
  6. 数组名字和标量属于完全不同的命名空间,Perl知道哪个是标量哪个是数组。标量是$,数组是@
  7. 下标可以是数字也可以是表达式。下标超出数组的范围不会报错,只会返回undef的值,如果没有把值放入对应的位置的话。
  8. 对于$array[0] = "abc"。这样的列表,最后一个元素的索引为$#array。这里是0。可以用$array[$#array + 1]来对数组的下一个索引进行赋值。
  9. 列表支持反向索引,从-1,-2,-3开始倒数。-1表示列表的最后一个元素。
  10. 可以用括号才创建一个列表,例如(1, 2, 3)  (1, 2.., 99) 范围操作符。
  11. 列表中也可以是变量。 ($a, $b, $c)。
  12. 使用qw(quoted words)可以方便的输入大量需要加引号的数组。例如qw(abc, ded, ddd, ee)。还可以qw{..}, qw!..!。只要前后的符号匹配就可以了。
  13. 列表可以一起赋值,例如 ($fred, $string, $number) = ("abc", "dec", "fdsf");
  14. 使用@来引用数组,也就是对列表数据的整体的引用。@array = qw {abc, ddd, ccc};
  15. 数组只能包含标量值,不能包含数组,不支持数组的嵌套。
  16. @copy = @source; 把一个数组复制到另外一个数组。
  17. 数组可以作为栈来操作。pop和push,$value = pop(@array)或者 $value = pop @array,甚至pop @array。 push(@array, 4)。 push @array, 8。push @array, 1..10 直接加入10个元素。
  18.  pop和push都是操作数组尾的,shift和unshift是操作数组头。
  19. 数组可以被插入字符串中,然后被打印出来。
  20. 对于@array,那么$array[1]引用的是数组的第二个索引的值,${array}[1]引用的确实$array这个标量的值。没有下标引用的时候,使用的标量名字空间的内容。
  21. foreach可以遍历整个数组,每个变量为 foreach $content(@array),是$content。
  22. 如果不指定变量的名字,也可以使用默认的匿名变量。 foreach (1..10) { $_ },也可以$_ = "abc"; print;就是不带参数的时候会去找默认的全局共享的变量。
  23. reverse可以把数组的内容反转。@reversedResult = reverse @source;
  24. sort将数组的内容按照字符的顺序排序,然后输出新的数组。对数字的排序也会当成字符来处理的。@sortedResult = sort @source;
  25. 上下文,上下文分为标量和列表的。$number = 42 + @people; 上面会使用标量的上下文,输出的是42假设@people的个数。
  26. List-Producing。@result = reverse qw {abc, abd, dec} 列表上下文 $result = reverse qw {abc, adb, dec} 标量上下文 。所以需要看返回的内容要作为什么用。List-Producing的意思就是说,值是列表类型,根据不同的赋值对象,表现的方式是不一样的。
  27. Scalar-Producing。值是标量类型。如果赋值给列表,那么就是只有一个元素的列表。
  28. 可以强制转换为标量的上下文。就是结果是标量。例如 print "@people" 是打印出@people里面的所有的值,以及 print "scalar @people"是打印@people的元素个数。
  29. 如果把<STDIN>保存在列表中,那么就是读取剩下的内容直到遇到EOF。
  30. chomp也可以对列表进行操作,会遍历整个列表,然后对每个列表里面的标量进行修改。

答案:

@strings = <STDIN>;
#chomp(@strings);
@results = sort @strings;
print "-------------Result------------\n";
print @results;

#@names = qw {fred, betty, barney, dino, Wilma, pebbles, bamm-bamm};
#@numbers = <STDIN>;
#chomp(@numbers);
#print "-------------Result------------\n";
#for $number(@numbers) {
    #print "The name of number:" . $number . " is " . $names[$number-1] . "\n";
#}

 

#@array = <STDIN>;
#@array = reverse @array;
#print "-------------Result------------\n";
#print @array;

分享到:
评论

相关推荐

    perl个人学习笔记

    Perl是一种强大的脚本编程语言,...以上就是Perl学习笔记中涵盖的一些基础概念和操作。继续深入学习,你将能够编写更复杂的Perl脚本,解决各种实际问题。记得实践是学习编程的关键,多做练习,逐步提升你的Perl技能。

    perl 语言学习笔记

    ### Perl 语言学习笔记知识点概览 #### 第一章:Perl 语言简介及基础语法 - **Perl 的定义**:Perl 是 Practical Extraction and Report Language 的缩写,是一种强大的脚本语言,广泛应用于文本处理、系统管理...

    perl学习笔记

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

    Perl学习笔记.docx

    Perl是一种强大的脚本编程语言,尤其在文本处理和系统管理任务中广泛应用。下面将详细介绍Perl的基本知识、数据类型、基本语法、文件和文件夹操作,以及一些常用的模块。 1. **数据类型** - **标量(Scalar)**: ...

    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语言概述 - **高级语言与低级语言**: 在这篇笔记中,作者首先区分了高级语言和低级语言。高级语言指的是脚本语言,这类语言通常不直接操作底层硬件,例如Shell和Awk。低级语言则...

    Perl24学时 详细笔记

    ### Perl24学时详细笔记知识点总结 #### 第一学时:Perl简介与注释 - **Perl语言介绍**:Perl是一种高级编程语言,广泛应用于系统管理、Web开发及文本处理等领域。它拥有强大的字符串处理功能,使得在处理文本文件...

    Perl语言学习完全笔记

    ### Perl语言学习完全笔记知识点概览 #### 一、Perl语言简介 ...以上内容为Perl语言学习笔记的主要知识点概览,涵盖了语言的基础语法、数据类型、操作符、数组处理以及文件读写等方面,适合初学者快速入门和深入学习。

    perl的学习笔记1

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

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

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

    Note of Learning Perl--Lists and Arrays

    学习和熟练掌握列表和数组的使用,对于提升Perl编程能力至关重要。 总结一下,Perl中的列表和数组是处理有序数据的基础工具。列表是临时的,用于临时存储和传递数据,而数组提供持久化的数据存储,支持多种操作,如...

    Perl语言入门学习笔记.docx

    Perl语言是一种功能强大的脚本编程语言,尤其适合文本处理和系统管理任务。...以上只是Perl语言入门的基础知识,Perl还包含模块系统、正则表达式、异常处理等高级特性,随着学习深入,你将发现Perl的强大和灵活性。

    Note of Learning Perl--Filehandles and File Tests

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

    Perl中的列表和数组学习笔记

    通过Perl中的列表和数组,程序员可以实现对数据的高效处理和操作,无论是简单的数据存储还是复杂的算法实现,列表和数组都是进行数据操作的基本构件。掌握它们的基本知识对于学习Perl和进行Perl编程至关重要。

    Perl数组排序学习笔记

    ### Perl数组排序学习笔记 #### 一、引言 Perl是一种功能强大的脚本语言,在处理文本数据方面表现优异。其中一个常见的需求就是对数组中的元素进行排序。本文将深入探讨Perl中数组排序的各种方法,包括基于ASCII码...

Global site tag (gtag.js) - Google Analytics