zoukankan      html  css  js  c++  java
  • 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, 1, 2, qw(wilma); #删除元素后,在剔除的空间中插入wilma
    		splice @array, 1, 0, qw(wilma);不剔除元素直接添加元素,新的元素在下标1位置,本来下标1元素和其后元素向后顺移
    		print "@array
    "; #打印时,@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, "
    "; #输出为99
    	
    perl默认变量$_:
    	foreach (1..10)
    	{
    		print "I can count to $_!
    ";
    	}
    	$_ = "Yabba dabba doo
    ";
    	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
    ";	
    	}
    	
    	
    列表上下文和标量上下文:
    	scalar(@array)得到数组中元素的个数
    	
    =cut
    
    @array = qw|hello ni hao tea cup papper|;
    while(($index1, $str1) = each @array)
    {
    	print "$index1 = $str1
    ";	
    }
    
    @array = sort @array;
    print "@array
    ";
    
    $count = @array;
    $count1 = scalar(@array);
    print $count, $count1 . "
    ";
    
    @array = reverse qw/yabba dabba doo/;
    #得到 doo, dabba, yabba
    $backwards = reverse qw/yabba dabba doo/;
    #得到oodabbadabbay
    
    system "pause";


  • 相关阅读:
    PHP 处理历史数据的伪代码
    PHP 算法之 -- 计算器设计
    PHP
    PHP-设计模式之-中介者模式
    删除更新数据库字段
    MySQL update 链表 (一个表数据当做条件错误时候的转换)
    题解 CF506C Mr. Kitayuta vs. Bamboos
    题解 LOJ2049 「HNOI2016」网络
    题解 CF1349C Orac and Game of Life
    题解 CF1349B Orac and Medians
  • 原文地址:https://www.cnblogs.com/v-BigdoG-v/p/7398626.html
Copyright © 2011-2022 走看看