微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Perl语言入门笔记 第三章 列表和数组

#!/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 举报,一经查实,本站将立刻删除。

相关推荐