Perl 哈希值

Perl 哈希值

一组 键/值 对被称为哈希。散列结构中的每个键都是唯一的,并且是字符串类型。与这些键相关的值是 标量。 这些值可以是数字、字符串或引用。Hash是用 my 关键字声明的。变量名前面是美元 符号($) ,后面是大括号中的键和与键相关的值。每个键都与一个值相关联。

例子

my%rateof{mango} = 45;

问题出现了,什么时候使用数组,什么时候使用哈希值?

  • 如果事情是有顺序的,那么就用数组。比如说。
1. A list of people in a bank queue.
2. A list of people in railway reservation line.
3. A list of files to read.
  • 如果我们拥有的东西不符合顺序,那么就去找哈希。比如说。
1. An index of surname looked up by the first name.
2. An index showing the size of files looked up by name.

空哈希: 一个没有任何键的哈希变量被称为 空哈希。

  • 例子
my %rateof;
  • 这里 rateof 是哈希变量。

将一个键/值对插入哈希: 键总是字符串类型,值总是标量类型。

  • 例子
$rateof{'mango'} = 45; 
  • 这里的键是芒果,值是45。

哈希值的初始化和获取哈希值的元素: 哈希变量可以在其声明时用键/值对进行初始化。有两种方法来初始化哈希变量。一种是使用 **= > **,这被称为 胖箭头胖逗号。 第二种是将键/值对放在 双引号(””)中 ,用逗号(,)分开。使用胖逗号提供了一种替代方法,因为你可以在键周围留下双引号。
要从哈希中访问单个元素,你可以使用美元符号($),后面是哈希变量,然后是大括号中的键。在访问键/值对时,如果你传递的键不在其中,那么它将返回一个未定义的值,或者如果你开启了警告,它将显示警告。

  • 例子
# Perl program to demonstrate the
# Fetching an element of a Hash
 
# creating hash
%rateof = ('Mango' => 45, 'Orange' => 30, 'Grapes' => 40);
 
# Fetching an element of Hash
print "rateof{'Mango'}\n";
print "rateof{'Orange'}\n";
print "$rateof{'Grapes'}\n";
  • 输出
45
30
40
  • 解释: 要访问三个键Mango, Orange, Grapes,并打印与之相关的值,只需使用美元符号和Key。打印语句将打印与该键相关的值。

哈希中的空值: 一般来说,你不能给哈希的键分配空值。但是在Perl中,有一种方法可以为哈希值提供空值。通过使用 undef 函数。根据用户的需要,”undef “可以被分配给新的或现有的键。将undef放在双引号中会使它成为一个字符串而不是一个空值。

# Perl program to demonstrate the
# empty values of a Hash
 
#use warnings;
 
# creating hash
%rateof = ('Mango' => 45, 'Orange' => undef, 'Grapes' => 40);
 
# Fetching an element of Hash
print "rateof{'Mango'}\n";
print "rateof{'Orange'}\n";
print "$rateof{'Grapes'}\n";

输出

45

40

迭代 哈希: 要访问哈希中的值,用户必须知道与该值相关的键。如果一个哈希的键事先不知道,那么在键函数的帮助下,用户可以得到键的列表,并可以在这些键上进行迭代。
例子

my @fruits = keys %rateof;
for my fruit (@fruits) {
    print "The color of 'fruit' is rateof{fruit}\n";
}

散列的大小: 键/值对的数量被称为散列的大小。为了得到这个大小,用户首先要创建一个键或值的数组,然后他就可以得到这个数组的大小。

  • 语法
print scalar keys % hash_variable_name;
  • 例子
# Perl program to find the size of a Hash
 
#use warnings;
 
# creating hash
%rateof = ('Mango' => 64, 'Apple' => 54, 'Grapes' => 44, 'Strawberry'=>23);
 
# creating array of keys
@keys = keys %rateof;
size = @keys;
print "Hash size using Keys is:size\n";
 
# creating hash of values
@values = values %rateof;
size = @values;
print "Hash size using Values is:size\n";
  • 输出
Hash size using Keys is: 4
Hash size using Values is: 4

在哈希中添加和删除元素: 用户可以使用简单的赋值操作,轻松地在哈希中添加一对新的键/值。

  • 例1: 在哈希中增加元素
# Perl program to add an element in a hash
 
#use warnings;
 
# creating hash
%rateof = ('Mango' => 64, 'Apple' => 54, 'Grapes' => 44, 'Strawberry'=>23);
 
# array of keys
@keys = keys %rateof;
 
size = @keys;
print "SIZE OF HASH BEFORE ADDING:  issize\n";
 
# Adding new key/value pair into hash
rateof{'Potato'} = 20;
 
# array of keys
@keys= keys %rateof;
 size = @keys;
print "SIZE OF HASH AFTER ADDING:  is $size\n";
  • 输出
SIZE OF HASH BEFORE ADDING:  is 4
SIZE OF HASH AFTER ADDING:  is 5
  • 例2: 使用 删除 函数从哈希中删除一个元素
# Perl program to element from hash
 
#use warnings;
 
# creating hash
%rateof = ('Mango' => 64, 'Apple' => 54, 'Grapes' => 44, 'Strawberry'=>23);
 
# creating array of keys
@keys= keys %rateof;
 
# finding size of hash
size = @keys;
print "SIZE OF HASH BEFORE DELETING:size\n";
 
# using delete function
delete rateof{'Mango'};
 
# creating array of keys
@keys= keys %rateof;
 
# finding size of hashsize = @keys;
print "SIZE OF HASH AFTER DELETING: $size\n";
  • 输出
SIZE OF HASH BEFORE DELETING: 4
SIZE OF HASH AFTER DELETING: 3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程