Perl中的数组&哈希应用
哈希和数组是Perl中较为常用的结构,本文则重点讨论数组和哈希的一些基本用法,供广大喜爱Perl的同学们交流学习。
哈希
Perl中的哈希表类似于Python中的字典结构,由(键=>值)对构成,以"%"开头:
- 定义:%hash = ('a'=>1,'b'=>2,'c'=>3);或 %hash = ('a',1,'b',2,'c',3);
- 访问:$hash{'a'}; #直接用花括号访问
- 插入元素:$hash{'d'} = 4; #('a'=>1,'b'=>2,'c'=>3,'d'=>4)
- 删除键值对:delete $hash{'a'}; #('b'=>2,'c'=>3)
- 清空:undef %hash;或 %hash = ();
- 判断哈希中是否包含某key:exits($hash{$hey}); #存在返回1,不存在返回0
哈希遍历:
while(my($key,$value)=each%h){
print"$key\t$value\n";}
嵌套哈希:
- 定义:%MulHash = (
'fruit'=>{'apple'=>1,'banana'=>2},
'vegetable'=>{'potato'=>1},
'family'=>['wife','husband','son']);
ps:嵌套哈希定义时最外层用小括号,但嵌套内容必须是花括号,若嵌套数组,则需用中括号。
- 插入哈希元素:$MulHash{'weight'}={'jack'=>100,'mary'=>150}; #直接赋值即可
- 元素访问:$MulHash{'fruit'}{'apple'} = 1;
- 数组嵌套访问,把序号放在对应的地方即可:$MulHash{'family'}[0]='daughter';
嵌套哈希遍历:层序遍历即可
for $key1(sort keys %MulHash){
for $key2 (sort $MulHash{$key1}){
print $MulHash{$key1}{ $key2};
}}
数组
perl数组变量以“@”开头,是一种列表结构。
- 定义:@array = ('a','b','c','d');
- 元素访问:跟很多语言一样,Perl数组同样通过下标存取,第一个下标为0。如$array[0];
- 数组拷贝:@array1 = @array2;
- 打印数组:print (@array,"\n");或print ("@array\n");
- 数组长度:$len = @array; #$len为数组@array的长度;
- 子数组:@subarray1 = @array[0,1]; @subarray2 = @array[0..2]; #@subarray1=('a','b');@subarray2=('a','b','c');
- 数组排序:@array2=sort(@array);#@array2=("a","b","c")
- 数组反转:@array2=reverse(@array);或@array2=reversesort(@array);
数组遍历:
foreach $item (@list) {
print "$item\n";
}
或
for (my $i = 1; $i < @list; $i++){
print "$key_word[$i]";
}
Perl中的数组&哈希应用的更多相关文章
- perl 引用(数组和hash引用) --- perlreftut - Mark 的一个简单的'引用'教程 ---Understand References Today. --Mark Jason Dominus, Plover Systems (mjd-perl-ref+@plover.com)
https://blog.csdn.net/fangwei1235/article/details/8570886 首页 博客 学院 下载 论坛 APP 问答 商城 活动 VIP会员 招聘 ITeye ...
- Perl中的哈希(四)
Perl中的哈希数据结构.相比较于数组,这种数据结构对于数据查找和统计更加方便. 一个特殊的哈希,%ENV,表示当前terminal下,通过setenv设置的variable的键值. 键:环境变量名, ...
- perl 中的哈希赋值
在perl 中,通过代码动态的给哈希赋值,是最常见的应用场景,但是有些情况下,我们事先知道一些信息,当需要把这些信息存放进一个哈希的时候,直接给哈希赋值就好: 哈希的key不用说,就是一个字符串,关键 ...
- [码海拾贝 之Perl]在字符串数组中查找特定的字符串是否存在
前言 检索一个字符串是否存在于一个数组中, 最主要的想法应该就是对数组进行循环, 逐个推断数组的每一个元素值和给定的值是否相等. (在Java语言还能够把数组转成 List , 在 list 中直接有 ...
- perl中的grep函数介绍
grep函数 (如果你是个的新手,你可以先跳过下面的两段,直接到 Grep vs.loops 样例这一部分,放心,在后面你还会遇到它) <pre>grep BLOCK LISTgrep E ...
- perl5 第九章 关联数组/哈希表
第九章 关联数组/哈希表 by flamephoenix 一.数组变量的限制二.定义三.访问关联数组的元素四.增加元素五.创建关联数组六.从数组变量复制到关联数组七.元素的增删八.列出数组的索引和值九 ...
- 【转载】Perl中的引用
为什么使用引用? 在perl4中,hash表中的value字段只能是scalar,而不能是list,这对于有些情况是很不方便的,比如有下面的数据: Chicago, USAFrankfurt, Ger ...
- hash 在 perl 中的用法(转载)
Perl的数据结构中最有趣的一个特性是哈希(hash),它使得在数据片段之间建立键-值(key-value)关联成为可能.虽然这些哈希要远远比普通系统中以数字索引的数组用途更广,但是往往也会使初学者不 ...
- Perl中的输入输出流(三)
Perl中读取标准输入:<STDIN> foreach (<STDIN>) { print "I saw $_";} 钻石操作符<>:它的参数 ...
随机推荐
- Problems with Ribbon/Feign/Zuul retry
原文 https://github.com/spring-cloud/spring-cloud-netflix/issues/1577 I'm using Spring Cloud Camden SR ...
- 【1】记一次破解wifi
当然,使用的依旧是aircrack套件,这次依旧是跑字典,今天,捉到了另一个实验室icephone的wpa握手包,我猜测实验室的wifi一般都跟自己的名字有关,icephone刚好是8位字母,于是我就 ...
- fbx sdk
autodesk fbx review autodesk fbx review http://www.greenxf.com/soft/169025.html autodesk fbx review( ...
- 2015多校第6场 HDU 5358 First One 枚举,双指针
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5358 题意:如题. 解法:观察式子发现,由于log函数的存在,使得这个函数的值域<=34,然后我 ...
- C++ STL结构总结
1. 什么是STL 它的全名是stand template library, 标准模板库,主要是将一些结构和算法写成模板,以便能够实现对任意类型的对象都可以操作,而不需要再一次去写一些算法及结构. 它 ...
- Jquery屏蔽浏览器的F1-F12快捷键,在IE,GOOGLE下测试均无问题
在网上找了找,很多都是js实现的,东找西找,再加上自己的想法也勉强的完成了,直接看代码 <script type="text/javascript" src="Sc ...
- [ Python ] 基本数据类型及属性(下篇)
1. 基本数据类型 (1) list 列表 (2) tuple 元组 (3) dict 字典 (4) set 集合 2. list 列表方法 Python 内置的一种数据类型, ...
- Java显式锁学习总结之一:概论
我们都知道在java中,当多个线程需要并发访问共享资源时需要使用同步,我们经常使用的同步方式就是synchronized关键字,事实上,在jdk1.5之前,只有synchronized一种同步方式.而 ...
- phoenix到hbase的应用
一.phoenix的简介 hbase的java api或者其语法很难用,可以认为phoenix是一个中间件,提供了访问hbase的另外的语法. 二.配置phoenix和hbase 1.下载 phoen ...
- spring cloud报错解决:java.lang.ClassNotFoundException: com.netflix.servo.monitor.Monitors
见鬼的事发生了. 在家里电脑上拿样例代码,运行时OK的.但一到公司电脑,用同样的代码,就会报下面的错误 ===================== Caused by: java.lang.Class ...