基本用法
# 初始化 %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"; # 打印1
$h{b} = '2b';
print "$h{b}\n"# 打印2b
# 删除key用deletedelete $h{b}; # 从$h删除'b'
清空hash
undef %h
得到hash的所有键值#
得到所有keys,顺序取决于hash函数,或者说是乱序
@all_keys = keys %h;
# 所有键值,是按hash的值从大往小排列的。值的比较是数字比较(比如说,10>9)@all_keys = sort{$h{$b}<=>$h{$a}} (keys %h);
# 所有键值,是按hash的值从小往大排列的。值的比较是数字比较
@all_keys = sort{$h{$a}<=>$h{$b}} (keys %h);
# 所有键值,是按hash的值从小往大排列的。值的比较是字符串比较#(比如说,'10' < '9')
@all_keys = sort{$h{$a} cmp $h{$b}} (keys %h);
判断hash是否包含key
exists($h{$key});
Hash的长度
想要知道一个hash存放多少数据
$hash_size = keys %h # 把%h的长度放到$hash_size中print scalar kes %h, "\n" # 打印%h的长度。这里用了scalar来返回数组长度。
遍历一个hash
while (my ($k, $v) = each %h) {print "$k ---> $v\n";}
foreach my $key (keys %$hostStatus) {
print "The key is $key and value is $hostStatus->{$key}.";
}
Reference引用
Reference类似于C/C++的指针
$h_ref = \%h; # 获得一个hash的reference
%aHash = %{$h_ref};# 把hash reference当成hash用
$value = $h_ref->{akey} # 这个和%h{akey}是一样的
传递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引用(hash reference)
函数可以返回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()} # 如果就是想复制,也可以用这种方法
from:http://lmylvmingyue.blog.163.com/blog/static/46601701201031551731661/
分享到:
相关推荐
### Perl Hash 数据结构详解 #### 一、Perl Hash 概述 **Perl Hash** 是 Perl 编程语言中的一种非常重要的数据结构。它类似于数组,但与数组...掌握 Perl Hash 的使用方法对于编写高效和简洁的 Perl 程序至关重要。
要了解如何使用Perl以及它的基本用法,我们首先需要安装Perl解释器,通常可以在官方网站`www.perl.org`上找到对应操作系统的版本。安装完成后,就可以开始编写和运行Perl脚本了。 1. **Perl脚本的基本结构** - 每...
### Perl语言编程:《Programming Perl》 #### 书籍概述 《Programming Perl》是一本由Larry ...通过对本书的学习,读者不仅可以掌握Perl语言的基本概念和用法,还能了解到如何利用Perl解决实际问题的方法和技术。
下面将详细介绍Perl DBI的一些关键概念和方法。 1. 变量表达的含义: - `$drh`:驱动程序对象句柄,代表与特定数据库驱动的交互。 - `$dbh`:数据库句柄,表示与一个数据库的连接。 - `$sth`:语句柄,用于执行...
- 哈希拷贝与反转:使用`%hash2 = %hash1`进行拷贝,使用`%hash2 = reverse %hash1`进行反转。 - 哈希赋值:`$hash{$key} = $value`。 #### 哈希内嵌哈希 - 哈希可以作为另一个哈希的值,形成哈希内嵌哈希的结构。...
例如,输入`perldoc perl`可以看到Perl的简介和基本语法,`perldoc -f function_name`可以查看某个函数的用法,`perldoc modulename`可以查看特定模块的文档。通过熟练使用"perldoc",开发者可以快速查找和学习Perl...
- Perl支持面向对象编程,通过 `package` 定义类,`new` 创建对象,`method` 定义方法,`@ISA` 定义继承链。 10. **上下文**: - Perl的上下文概念很重要,它决定了变量的行为。标量上下文返回单个值,列表上下文...
9. **对象导向编程**:Perl支持面向对象编程,通过`package`定义类,`new`创建对象,`->`操作符调用方法。 10. **错误处理**:Perl使用`eval`函数捕获运行时错误,并通过`die`和`warn`函数报告错误信息。 11. **...
1. **变量和数据类型**:Perl支持多种变量类型,如标量(scalar)、数组(array)、哈希(hash)等。标量变量用$符号标识,数组用@,哈希用%。Perl是弱类型语言,变量的数据类型会根据赋值自动调整。 2. **控制结构...
3. **perl-Digest-SHA-5.85-4.el7.x86_64.rpm**: 这是Perl的Digest::SHA模块,提供了SHA(Secure Hash Algorithm)哈希函数的实现,包括SHA-1和SHA-2系列。这些哈希函数在数据完整性检查、密码存储和文件校验等方面...
Perl中的变量类型包括标量(scalar)、数组(array)和哈希(hash),这些数据结构为处理不同类型的数据提供了便利。例如,`$var`代表标量,`@array`是数组,而`%hash`是哈希。 在Perl中,正则表达式(Regular ...
### Programming Perl中文版知识点概述 #### 一、Perl语言简介 **标题与描述解析:** “Programming Perl...无论是文本处理、网络编程还是系统管理,Perl 都能提供强大的工具和灵活的方法,让你的编程之路更加顺畅。
在面向对象编程方面,Perl支持类和对象的创建,可以通过`package`定义一个类,使用`new`关键字实例化对象,通过`sub`定义方法。Perl5.6以后的版本还引入了角色(roles),提供了一种组合类行为的方式,增强了代码的...
### Perl使用POST方法从新浪查询天气 在本篇教程中,我们将探讨如何使用Perl语言结合LWP(Library for Web Programming)模块通过POST方法从新浪网获取天气信息。此脚本适用于那些希望了解如何利用Perl进行网络请求...
- `perlfunc`:列出Perl内置函数及其用法。 - `perlquick`、`perlretut`:提供Perl正则表达式教程。 #### 三、Perl程序结构 一个典型的Perl脚本包含以下部分: - **第一行(Shebang行)**:指定Perl解释器的...
通过阅读这些文档,开发者可以掌握Perl函数的使用方法,解决实际问题,并能更好地融入Perl编程社区。由于Perl函数全集资料稀少,这份压缩包中的内容尤为珍贵,值得深入研究。为了充分利用这份资源,建议逐个查阅各个...