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 $_";} 钻石操作符<>:它的参数 ... 
随机推荐
- rabbitmq之核心构架和原理总结(四)
			前言 前面博文已经将安装配置和站点管理介绍了,现在开始正式学习rabbitmq的使用了: rabbitMQ的构架 rabbitmq作为消息队列,一条消息从发布到订阅消费的完整流程为: 消息 --> ... 
- Linux 入门记录:十一、Linux 用户基础
			一.用户.组 1. 用户 当我们使用 Linux 时,需要以一个用户的身份登录,一个进程也需要以一个用户的身份运行.用户限制使用者或进程可以使用或不可以使用哪些资源. 2. 组 组用来方便地管理用户. ... 
- mac 使用清除废纸篓或彻底删除某文件 附加: smb afp ftp NAS 访问服务器相关
			mac 使用清除废纸篓或彻底删除某文件 附加: smb afp ftp NAS 访问服务器相关 mac 下删除文件方法: 1.使用 cleanmymac 使用 cleamymac 的清理 和 逐个 ... 
- nginx升级步骤
			今天应开发的需求,需要在Nginx增加一个模块,并不能影响现有的业务,所以就必须要平滑升级Nginx,好了,不多说了 1:查看现有的nginx编译参数 /usr/local/nginx/sbin/ng ... 
- C# 笔记——排序
			首先,一张图看懂8中排序之间的关系: 平均速度最快:快速排序 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 不稳定:快速排序,希尔排序,堆排序. 1. 直接插入排序 基本思想:在要排序的一组数 ... 
- leetcode 136 137 Single Number
			题目描述(面试常考题) 借助了异或的思想 class Solution { public: int singleNumber(vector<int>& nums) { ; ; i ... 
- NOI openjudge 1792.迷宫
			一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行.同时当Extense处在某个格点时,他只 ... 
- mongo数据库基本操作--python篇
			连接数据库 MongoClient VS Connection class MongoClient(pymongo.common.BaseObject) | Connection to MongoDB ... 
- Mybatis学习—XML映射文件
			总结自 Mybatis官方中文文档 Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同 ... 
- Two Sum  ——经典的哈希表的题
			Given an array of integers, return indices of the two numbers such that they add up to a specific ta ... 
