#!/usr/bin/perl -w use utf8; use diagnostics; =pod 列表: 列表是标量的有序集合 数组: 是存储列表的变量 更精确的说是列表是数据,数组是变量 列表和数组的比较: 都是以下标0开始的,包含的标量可以是任何字符串,数字和undef等不同类型标量值的混合 数组的使用: 定义: @array; 赋值: $array[0] = "yabba"; $array[1] = "dabba"; $blank = $array[100]; #未使用的数组元素将返回undef @array = (@array1,undef,@array2); 查找: 查找数组@rocks中最后一个元素的索引值: $index = $#rocks; 查找数组@rocks中最后一个元素: $elect = $rocks[-1]; 真正的perl程序员是不使用索引的 pop函数: 是用于删除数组最后一个元素,并把最后一个元返回 push函数: 是用于添加一个元素到数组的最后,pop和push是直接操作数组 如:$lastElec = pop @array; push @array,@list; shift函数: 是移除数组的第一个元素的 unshift函数: 是从头把元素移到数组的第一个元素 如:$m = shift @array; #把数组第一个元素删除,并返回给$m; unshift @array,4; #把4移到数组的第一个位置 splice函数: splice(数组名,开始删除位置(包括这个位置),删除的个数,删除后以什么替换); @array = qw(pebbles dino fred barney betty); @removed = spice @array,2;#删除下标2开始以后的元素,把删除的元素返回给@removed @removed = splice @array,1,2; #删除下标1开始后两个元素 @removed = splice @array,2,qw(wilma); #删除元素后,在剔除的空间中插入wilma splice @array,qw(wilma);不剔除元素直接添加元素,新的元素在下标1位置,本来下标1元素和其后元素向后顺移 print "@array\n"; #打印时,@array中的各个元素会以空格隔开 列表介绍: 列表只是数据,例如: () #空列表 (1..100) #1-100个整数组成的列表 (1,3,6) #只包含数字的列表 ("hello","xx","good",) #混合列表,最后的逗号忽略 (0,2..6,10,12) ($m..$n) (0,$#rocks) qw简写: 简历多个字符串列表时使用到: 如:("fred","bareny","betty","wilma","dino")#注意此处有双引号和逗号 qw(fred bareny betty wilma dino) #此处没了双引号和逗号,都是以空格分开的 qw( fred bareny betty wilma dino ) #增加,删除方便,但不要太多哟 qw的定界符不一定是()还有可能是<>,{},[],||,!! 如:qw!fred bareny betty wilma dino! 列表的赋值: 只的是赋值给别人,记住列表只是数据 ($fred,$barney) = ("barney","barney"); 交换两个变量的值: ($fred,$barney) = ($barney,$fred); foreach循环: foreach $str (qw/bedrock slate java/)#$str依次取出括号里的元素 { } $temp = 99; foreach $temp (@array)#关于循环变量,如$temp,循环结束会恢复以前的值 { } print $temp,"\n"; #输出为99 perl默认变量$_: foreach (1..10) { print "I can count to $_!\n"; } $_ = "Yabba dabba doo\n"; print; #会打印$_的值 resverse操作符: @fred = 6..10; @barney = reverse @fred; #10 9 8 7 6 @wilma = reverse 6..10; @fred = reverse @fred; sort操作符: @sorted = sort @rocks; #按字母顺序排序 each操作符: @array = qw|hello ni hao tea cup papper|; while(($index1,$str1) = each(@array)) { print "$index1 = $str1\n"; } 列表上下文和标量上下文: scalar(@array)得到数组中元素的个数 =cut @array = qw|hello ni hao tea cup papper|; while(($index1,$str1) = each @array) { print "$index1 = $str1\n"; } @array = sort @array; print "@array\n"; $count = @array; $count1 = scalar(@array); print $count,$count1 . "\n"; @array = reverse qw/yabba dabba doo/; #得到 doo,dabba,yabba $backwards = reverse qw/yabba dabba doo/; #得到oodabbadabbay system "pause";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。