• 【Perl学习笔记】列表和数组


    最近在弄WikiDump,发现Dump的解析工具都是Perl写的,没办法,只能开始啃Perl。下面是一些读书笔记,主要看的是小骆驼《Perl 语言入门》和《C程序员精通Perl》

    ---------------------------------------------------------------------------------------------------------

    @ARGV数组

    这是个由perl解释器事先建立的特殊数组,其内容就是调用参数所组成的列表。它和其他列表没有不同,只是在程序开始运行时里面就已经塞满了调用参数的列表。

    访问数组中元素

    建立数组如下:

    $rocks[0] = "yabba";
    $rocks[1] = "dabba";
    $rocks[2] = "doo";

    使用下标取值:

    print $rocks[0];

    神奇的地方是:如果你用了非整数作为下标,Perl会给你自动的舍去小数点。如下例中结果就是和fred[1]一样。

    $number = 2.71828;
    print $fred[$number-1];

    如果索引超出数组的尾端,则相应的值将会是undef。这点和一般的标量相同,如果从来没有对标量变量进行过赋值,它的值就是undef。

    最后一个元素的索引:

    $end = $#rocks;
    $number_of_rocks = $end +1;

    列表直接量

    (1,2,3)        #包含1、2、3三个数字的列表
    (0,2..6,10) #相当于(0,2,3,4,5,6,10)
    (5..1) #空列表:..只会“向上”计数

    qw简写
    qw是“加上引号的单词”或“把空白当成引号”的简写,qw由界定符框定,界定符可以是任何一种。如:

    qw! fred barney betty wilma dino !
    qw[ fred barney betty wilma dino ]


    Shift 和 unshift 操作

    shift和unshift操作的是数组的“开头”。

    @array = qw                # dino fred barney #
    $x = shift(@array); # $x 变成“dino”, @array现在是(“fred”, “barney”)
    $y = shift @array; # $y 变成“fred”, @array现在是(“barney”)
    shift @array; # @array为空
    $z= shift @array; # $z变成undef
    unshift(@array, 5); #@array现在是包含一个元素的列表(5)
    @others = 1..3;
    unshift @array, @others; # @array现在是(1,2,3,5)

    pop 和 push 操作

    与shift和unshift相反,pop 和 push 操作的是数组的“结尾”。

    @array 5..9;
    $fred = pop(@array); # $fred变成9,@array为(5,6,7,8)
    $barney = pop @array; # $barney变成8,@array为(5,6,7)
    pop @array #@array(5,6)
    push(@array,0) # @array(5,6,0)
    push @array, 1..2; # @array(5,6,0,1,2)






  • 相关阅读:
    二分查找
    转:归并排序
    C++ STL stack和queue
    spring-第十九篇AOP面向切面编程之增强处理的优先级
    spring-第十八篇之spring AOP基于XML配置文件的管理方式
    spring-第十七篇之spring AOP基于注解的零配置方式
    spring-第十一篇之SpEL表达式
    spring-第八篇之容器中的bean的生命周期
    spring-第七篇之深入理解容器中的bean
    spring-第二篇ApplicationContext国际化及事件机制
  • 原文地址:https://www.cnblogs.com/xiaoka/p/2291861.html
Copyright © 2020-2023  润新知