foreach(@orphans1)
{
if(exists ($hash2{$_}))
{
my $values = values %hash2{$_};
print "\n\n YES INSIDE THE LOOP: $values";
}
}
孤儿是我存储用户名的数组。我必须 比较孤儿记录并找出hash => hash2 I中的匹配键 能够比较和获取hash2中存在的密钥。
但是当我尝试检索相应的代码时,此代码无效 值。
示例数据:Hash2包含=> {ASE,UK} {CCY,US} {PSD,US} {ZK9,UL}
孤儿包含=> ZK9,ASE
答案 0 :(得分:1)
这是我写的方式:
use warnings;
use strict;
my @orphans1 = qw(ZK9 ASE);
my %hash2 = ('ASE' => 'UK', 'CCY' => 'US', 'PSD' => 'US', 'ZK9' => 'UL');
foreach(@orphans1){
print "In hash! key: $_ value: $hash2{$_}\n" if $hash2{$_};
}
In hash! key: ZK9 value: UL
In hash! key: ASE value: UK
答案 1 :(得分:0)
下一个:
use 5.010;
use warnings;
use Data::Dumper;
my @orp = qw(ZK9 ASE);
my %hash = ('ASE' => 'UK', 'CCY' => 'US', 'PSD' => 'US', 'ZK9' => 'UL');
my @o = @hash{@orp}; #values hash slice
say "@o";
打印
UL UK
那就是你想要的吗?
或者:
use 5.020; #need 5.20
use warnings;
use Data::Dumper;
my @orp = qw(ZK9 ASE);
my %hash = ('ASE' => 'UK', 'CCY' => 'US', 'PSD' => 'US', 'ZK9' => 'UL');
my %h = %hash{@orp}; #key/value hash slice
say Dumper \%h;
打印
$VAR1 = {
'ZK9' => 'UL',
'ASE' => 'UK'
};