如何检查 Perl 哈希中是否已存在某个键?


让我们考虑一个场景,我们想知道 Perl 哈希中是否已经包含某个键。在 Perl 中,可以使用 **exists()** 函数来实现。在本教程中,我们将通过两个例子来学习 **exists** 函数。

Perl 中的 exists() 函数

在 Perl 中,**exists()** 函数检查数组或哈希中是否存在特定元素。如果请求的元素出现在输入数组或哈希中,则此函数返回“1”,否则返回“0”。

示例 1

考虑以下代码。在这个例子中,我们将创建一个简单的哈希,然后在下一个例子中,我们将使用 **exists** 函数来检查哈希是否包含特定值。

$countries{'India'}    = 12.00;
$countries{'Spain'}    = 1.25;
$countries{'Argentina'} = 3.00;

# if the key exists in the hash,
# execute the print statement
if (exists($countries{'Spain'})) {
   print "found the key 'Spain' in the hash\n";
} else {
   print "could not find the key 'Spain' in the hash\n";
}

输出

如果在 Perl 编译器上运行上述代码,则会在终端上得到以下输出:

found the key 'Spain' in the hash

示例 2

现在,让我们再看一个例子来更好地理解这个概念。考虑以下代码。

# Initialising a Hash
my %Hash = (Spain => 1, India => 2, Russia => 3);

# Calling the exists() function
if (exists($Hash{Spain})) {
   print "Spain exists\n";
} else {
   print "Spain doesn't exists\n";
}

# Calling the exists() function
# with different parameter
if (exists($Hash{England})) {
   print "England exists\n";
} else {
   print "England doesn't exist\n";
}

输出

如果在 Perl 编译器上运行此代码,则会在终端上得到以下输出:

Spain exists
England doesn't exist

给定的哈希不包含值“England”,因此第二个 exists 函数返回“England doesn't exist”。

更新于:2022-12-26

4K+ 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告