#!/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, 1, 2, qw(wilma); #删除元素后,在剔除的空间中插入wilma
splice @array, 1, 0, qw(wilma);不剔除元素直接添加元素,新的元素在下标1位置,本来下标1元素和其后元素向后顺移
print "@array\n"; #打印时,@array中的各个元素会以空格隔开
列表介绍:
列表只是数据,例如:
() #空列表
(1..100) #1-100个整数组成的列表
(1, 2, 3, 6) #只包含数字的列表
("hello", 3, "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";
转载于:https://www.cnblogs.com/v-BigdoG-v/p/7398626.html