perl哈希hash的常见用法介绍
发布时间:2023-08-12 18:46:59
基本用法
#初始化%h为空数组 %h={};
#用数组初始化%h为a=>1,b=>2 %h=('a',1,'b',2);
#意义同上,只是另一种更形象化的写法。%h=('a'=>1,'b'=>2);
#如果key是字符串,可以省略引号。下面这行和上面那行是一样的%h=(a=>1,b=>2);
#用{}来访问print “$h{a}\n”;
#打印 $h{b}='2b'; print “$h{b}\n”; #打印2b
#删除key用delete delete$h{b}; #从$h删除'b'
清空Perl Hash
undef %h;
得到hash的所有键值
#得到所有keys,顺序取决于hash函数,或者说是乱序@all_keys=keys%h; #所有键值,是按hash的值从大往小排列的。值的比较是数字比较(比如说,10>9) , @all_keys=sort{$h{$b} => $h{$a}}(keys%h);
判断Perl Hash是否包含key
exists($h{$key});
Perl Hash的长度
想要知道一个hash存放多少数据
$hash_size=keys%h #把%h的长度放到$hash_size中print scalar keys %h,"\n"; #打印%h的长度。这里用了scalar来返回数组长度。
遍历一个Perl Hash
while(my($k,$v)=each%h){print"$k--->$v\n";}
Reference引用
Reference类似于C/C++的指针
$h_ref=\%h; #获得一个hash的reference, %aHash=%{$h_ref}; #把hash reference当成hash用 $value=$h_ref->{akey}; #这个和%h{akey}是一样的
传递Perl Hash到函数
一般都是传递一个reference到函数
%h=(); $h{a}=1; foo(\%h); print $h{b},"\n"; #打印出2。这个值来自于函数foo(), sub foo{my ($h)=@_; print $h->{a},"\n"; #打印出1 $h->{b}=2;}
函数返回hash,或者hash引用(hashreference)
函数可以返回Perl Hash
sub foo{my %fh; $fh{a}=1; return %h;} my %h=foo(); print "$h{a}\n"; #打印出1
但是这样等于把整个hash从%fh复制到了%h,效率比较低。可以考虑返回hash的引用:
sub foo{my %fh; $fh{a}=1; return \%fh;} my $hr=foo(); print "$hr->{a}\n"; #打印出1. my %h=%{foo()} #如果就是想复制,也可以用这种方法。不用担心在sub foo里的%fh是局部变量,Perl会自动管理内存。它会发现%fh被$hr引用,就不会清理%fh的内存,并且$hr失效后释放内存。


猜你喜欢
- wp_mail() 函数用来发送邮件,类似于 PHP 的 mail() 函数。默认的发件人名称是 WordPress,发件人邮箱是类似 wo
- 本文用 Python 实现 PS 图像调整中的亮度调整,具体的算法原理和效果可以参考之前的博客:https://www.jb51.net/a
- Python 代码库之Tuple如何append元素tuple不像array给我们提供了append函数,我们可以通过下面的方式添加t=[1
- 如果一个模型里包含了ManyToManyField,在admin后台可能会显示成object,例如解决方法:在定义这个类的时候,加多一个函数
- 1.CNN概述CNN的整体思想,就是对图片进行下采样,让一个函数只学一个图的一部分,这样便得到少但是更有效的特征,最后通过全连接神经网络对结
- 支持实时监控sliderbar的数据,允许有callback回调的函数,有示例1、可自定样式SetStyle() 2、带有onSroll功能
- 写在前面从本节开始,计算机视觉教程进入第三章节——图像特征提取。在本章,你会见到一张简简单单的图片中
- 前言mysql查询使用select命令,配合limit,offset参数可以读取指定范围的记录。本文将介绍mysql查询时,offset过大
- 在前端开发中,如果需要模拟后端数据,而又不想开发一个后端服务器, 则可以借助mock.js配置一个后端服务器来返回前端需要的数据,本文将会分
- Infopath的使用避免了最终用户以完全手写的方式生成XML数据文件,同时也可以统一XML文件的格式,在MOSS系统和网站开发中被广泛使用
- 前言Tenacity是一个 Apache 2.0授权的通用重试库,用 Python 编写,用于简化向几乎所有内容添加重试行为的任务。它起源于
- 本文实例为大家分享了python策略模式代码,供大家参考,具体内容如下"""策略模式""&
- 为庆祝jQuery的四周年生日,jQuery官方团队正式发布了jQuery 1.4版本。在这个版本中,jQuery官方团队做了大量的编码、测
- python对Ref文档进行去重首先将txt文档提取到Excel表格中筛选出重复项,并且整理到txt中:需要去重的目标txt也准备好:接下来
- 本文我们主要了解一下 Boostrap 历史、特点、用途,以及为什么选择 Boostrap 来开发我们的 Web 项目。学习要点:1.Boo
- 在使用element-ui的时候,有一个常用的组件,那就是el-popover,但是element-ui官方文档中样式跟用法都比较局限,在使
- 案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦'的页面数据)import urllib.request# 1
- Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签,具体代码如下所示:#!/usr/bin/en
- 安装环境及说明操作系统:64位win7以下所有安装包已经被我打包至网盘,请移步到http://www.colafile.com/file/4
- 我们都知道tensorflow框架可以使用tensorboard这一高级的可视化的工具,为了使用tensorboard这一套完美的可视化工具