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

原创 2015年08月23日 18:40:24
#!/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";


算法竞赛入门经典(第二版)-刘汝佳-第三章 数组与字符串 例题+习题(17/18)

说明本文是我对第三章题目的练习总结,建议配合紫书——《算法竞赛入门经典(第2版)》阅读本文。 另外为了方便做题,我在VOJ上开了一个contest,欢迎一起在上面做:第三章contest例题例3-1...
  • thudaliangrx
  • thudaliangrx
  • 2016年02月19日 17:28
  • 3480

刘汝佳《算法竞赛入门经典(第二版)》习题(二)

水仙花数,输出100~999中的所有水仙花数。若3位数ABC满足ABC=A²+B²+C²,则称其为水仙花数。韩信点兵。倒三角形,输入正整数n≤20,输入一个n层的倒三角形。子序列的和,输入两个正整数,...
  • qq_37653144
  • qq_37653144
  • 2017年04月22日 22:16
  • 1546

PERL语言入门:第三章:列表与数组:foreach, $_, each用法

#!/usr/bin/perl -w #foreach输出数组或列表 #$_为 PERL的默认变量, 当foreach不设置参数时, 默认保存到$_中 #eg. @array = qw/path u...
  • hope_smile
  • hope_smile
  • 2015年05月24日 05:12
  • 7910

PERL语言入门:第三章:列表与数组:pop,push, shit, unshit, splice函数

#!/usr/bin/perl -l #列表赋值时,记得加括号 #左边比右边多, 多出来的会被赋于undef #右边比左边折, 多出来的会被忽略 @array = 2..9; pop @...
  • hope_smile
  • hope_smile
  • 2015年05月24日 04:47
  • 643

PERL语言入门:第三章:列表与数组:foreach, $_, each用法

#!/usr/bin/perl -w #foreach输出数组或列表 #$_为 PERL的默认变量, 当foreach不设置参数时, 默认保存到$_中 #eg. @array = qw/path u...
  • hope_smile
  • hope_smile
  • 2015年05月24日 05:12
  • 7910

Perl语言入门(04 数组+列表)

由于公司需要,本人最近在学习Perl这种脚本语言,本文是我在学习Perl的过程中总结出来的一些心得和笔记,希望能够帮助也在学习Perl的各位同僚。废话不多说直接上干货!!! ————————————...
  • haoweilaizoule
  • haoweilaizoule
  • 2016年07月25日 17:21
  • 355

Perl语言入门——列表与数组

列表指的是标量的有序集合,而数组则是存储列表的变量 访问数组中的元素:与C语言类似,$fred[0]="yabba"; $fred[1]="daabba";     任何求值能得到数字的表达式都可以用...
  • rockiecxh
  • rockiecxh
  • 2014年05月07日 14:56
  • 238

<Perl语言入门>读书笔记 | 三. 列表和数据

读书笔记的第三章,列表和数据,也就是所谓的数组。这里最重要的一个概念是,Perl中的表达式的上下文概念。...
  • Titan0427
  • Titan0427
  • 2016年02月25日 18:50
  • 586

Perl语言入门笔记 第八章 用正则表达式进行匹配

#用正则表达式进行匹配 =pod m// = // = m%%,m||,m,m{},m(),匹配的时候根据需要写自己的定界符,像qw省略双引号定界符一样 模式匹配修饰符: 跟在定界符后面的,//...
  • q1241580040
  • q1241580040
  • 2015年09月21日 01:44
  • 2093

Perl语言入门笔记 第九章 用正则表达式处理文本

=pod #第九章:用正则表达式处理文本 用s///进行替换 s///查找替换功能 s/Barney/Fred/; #把Barney替换成Fred s/with (\w+)/against $1...
  • q1241580040
  • q1241580040
  • 2015年09月21日 01:47
  • 654
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Perl语言入门笔记 第三章 列表和数组
举报原因:
原因补充:

(最多只允许输入30个字)