perl语言入门总结-第3章-列表与数组
1-列表list指的是标题的有序集合, 而数组(array)则是存储列表的变量。
更精确地说,列表指的是数据,而数组指的是变量。
访问数组中的元素
$fred[] = "yabba";
$fred[] = "dabba";
$fred[] = "doo"; $number = 2.71111;
print $fred[$number-]; #dabba 如果下标不是整数,会舍去小数。
print $fred[] #如果不存在下标则返回 undef
特殊数组索引, 获得最后一个元素
$rocks[] = "one";
$rock[] = 'last';
print $rock[$#rock] ; #last
print $rock[-]; #last
列表直接量
(,,) (,,,) ("friend",) () (..)
(1.7..5.7) (..)空列表 (,..,,)
("fred", "barrbey"m "wilma")
qw简写
qw(fred barrbey wilma)
qw允许使用任何标点符号作为定界符。
qw/ fred barney betty / #可以用反斜杠\转义定义符
列表的赋值
($fred, $barney, $dino) = ('a', 'b','c');
print $barney; #结果为b
($a,$b)=($b,$a); #a,b两个变量值交换
数组变量赋值及简写
($rocks[], $rocks[], $rocks[]) = qw/a b c/;
@rocks = qw/a b c/; #上面方法的简写
数组操作
@a =qw/a b/;
@b =(@a, "c", 'd'); #a,b,c,d
pop与push操作, 操作的是最右端
@array = ..;
$array1 = pop(@array); #会从array中移除最后一元素元素8,返回8
push @array, ; #向后加100
shift和unshift操作符, 操作的是最左端
@array = qw# a b c d #;
$m = shift(@array); #@array值为(b,c,d)
unshift(@array, ); #向前加入100即(100,b,c,d)
splice操作符, 一共4个参数,2个可选参数, 次序为(目录@array,起如位置,元素的长度,要插入的@array)
@array = qw( a b c d);
@removed = splice @array, ;
print @removed; #qw(c,d)
print @array;#qw(a,b)
插入一个元素
@array = qw( a b c d);
@removed = splice @array, , ,qw(g);
print @array;#qw(a,b,g,c,d) 删除0个,然后在2个位置插入g,
foreach使用, 如何在foreach中使用,不会改变foreach那个对象的值
foreach $rock (qw/a b c d/){
print "$rock\n"
}
最喜欢用的默认变量 $_ , 下面例子会打印从1到100的数值
foreach (..){
print "$_ \n"
}
reverse操作符, 反序
@newone = reverse ..; #不会影响原来的数组
sort操作符,后面再讲自定义排序,,默认根据ascii码大小排序
@numbers = sort ..; # 100 101 102 97 98 99
each操作, 遍历会带索引
use 5.0.;
my @rocks = qw/a b c d/;
while (my($index, $value) = each @rocks){
print "$index:$value,"; #0:a,1:b,2:c,3:d,
}
标题上下文与列表上下文(重点)
@people = qw(d a b c);
@sorted = sort @people; #结果为 qw(a,b,c,d)
$number = + @people; #结果为46 #普通运算符
@list = @people; #得到4个人的列表
$n = @people; #得到人数3
标题表达式
$fred = something; #标题上下文
@pebbles = something; #列表上下文
($wilma, $betty) = something; #列表上下文
($dino) = something; #还是列表上下文 @fred= *; #得到仅有单个元素的列表(42)
@barney = "hello".' '."world"; #("hello world")
强制指定标量上下文
@rocks = qw(a b c d);
print "num is ".scalar @rocks; #num is 4
列表上下文的STDIN
@lines = <STDIN>;
chomp(@lines); #去掉所有换行符
perl语言入门总结-第3章-列表与数组的更多相关文章
- Perl语言入门:第六章习题:处理用户所指定的名字并汇报相应的姓。
37 print "\n----------------------------------_exercise_6_1--------------------------\n"; ...
- perl语言入门总结-第4章-子程序
子程序定义和返回值 sub sum{ print "调用了子程序\n"; $a + $b; #后一行为返回值 } ; ; $s =∑ #34 调用子程序 子程序中的参数,参数固定( ...
- perl语言入门总结-第5章-输入输出
读取标准输入 chomp($line = <STDIN>); #去掉后面的换行 while (defined($line = <STDIN>)) { print "I ...
- perl语言入门总结-第2章
$what ='steak'; print "fred ate $n ${what}s.\n"; 布尔值 如果是数字0为假, 如果是空字符串''为假, 如果即不是数字也不是字符串, ...
- Perl语言入门:第七章习题:输出文件中包含一个大写字母的所有行,不输出一行的内容全是大写的
文件内容: bash-2.03$ cat file_4_ex_ch7.txt anonymous attribute demolition grammar rules indices refernce ...
- Perl语言入门(中文版)(第6版) 东南大学出版社
第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? ...
- Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线。
Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线.
- Perl 语言入门1-5
第一章 简介 perl -v 文字处理,编写小型CGI脚本(Web服务器调用程序)的最佳语言 CPAN: Perl综合典藏网 shebang: #! /usr/bin/perl 或#! /usr/lo ...
- perl5 第四章 列表和数组变量
第四章 列表和数组变量 by flamephoenix 一.列表二.数组--列表的存贮 1.数组的存取 2.字符串中的方括号和变量替换 3.列表范围 4.数组的输出 5.列表/数组的长度 ...
随机推荐
- 【ArcGIS】文件地理数据库,个人地理数据库与ArcSDE的局别
地理数据库的类型 地理数据库是用于保存数据集集合的“容器”.有以下三种类型: 文件地理数据库 - 在文件系统中以文件夹形式存储.每个数据集都以文件形式保存,该文件大小最多可扩展至 1 TB.建议使 ...
- PowerShell 脚本域策略管理
大中型企业中,会设置许多组策略进行日常运维管理 ,毕然里面也存在许多废弃的策略,需要我们定期清理我们的组策略信息.通常我们导出HTML报告方式来帮助我们分析组策略信息: #1 首先需要加载GroupP ...
- Python数字、字符串
1. 数字 byte 在python3中最重要的特性是对文本和二进制数据做了更加清晰的区分,python3不会以任意隐式方式混用字节型和字符型,也因此在python3中不能拼接字符串和字节包(pyth ...
- phpStudy-FTP_Server插件安装使用教程
FileZilla Server使用教程 ftp server安装教程 除了phpStudy for IIS外其他版本phpStudy不再集成ftp server外. phpStudy for IIS ...
- 1.1 NBU基本概念
1.1 NBU基本概念 1) Policy(备份策略) 备份策略定义一台或几台服务器的备份方法.它包括哪些服务器需要备份.备份哪些目录或文件.在什么时间备份.采用什么方式进行备份等.配置NBU主要指定 ...
- nodejs使用MYSQL连接池,断线重连
两种方式解决1.你可以配置mysql的连接池 var mysql = require('mysql'); var pool = mysql.createPool({ host: 'localhost' ...
- 【洛谷P1967】[NOIP2013]货车运输
货车运输 题目链接 显然,从一点走到另一点的路径中,最小值最大的路径一定在它的最大生成树上 所以要先求出最大生成树,再在生成树上找最近公共祖先,同时求出最小值. #include<iostrea ...
- python生成xml文件
先上代码: #!/usr/bin/env python3 # _*_ coding: utf-8 _*_ from xml.dom.minidom import Document def readFi ...
- Vim---配置实用的.vimrc文件
配置自己电脑的vim,配置一个根据个人习惯使用的.vimrc文件.我的有以下功能等,读者可以根据自己的 个人喜好去配置自己的vim. 1.自动插入文件头 ,新建C.C++源文件时自动插入表头:包括文件 ...
- 洛谷P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)
题目背景 提示:原 P1829 半数集问题 已经迁移至 P1028 数的计算 题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a ...