【问题标题】:How to find if values of an array are the keys of hash in Perl?如何查找数组的值是否是 Perl 中哈希的键?
【发布时间】:2012-06-12 20:14:22
【问题描述】:

我有一个数组说@array。我想知道数组的哪些值构成哈希的键,比如 %hash。除了使用 for 循环之外,还有其他简单的方法吗?

例如,

 @array = qw (a b c);   
 %hash = ( a => 1, b=> 2 );    

在这种情况下,它应该只输出“a”和“b”。

【问题讨论】:

  • 如果你使用use strict;,你会遇到一些裸字问题(你应该这样做)。
  • 对。如果该数组应该包含文字字母“a”、“b”和“c”,则它应该是@array = ('a','b','c');@array = qw(a b c);
  • @JonathanLeffler:我使用了 strict,我只是没有将它包含在示例中。

标签: arrays perl hash


【解决方案1】:

应该这样做:

my @array = qw(a b c) ;
my %hash = ( a => 1 , b => 2 ) ;

my @result = grep { exists $hash{$_} } @array ;

【讨论】:

    猜你喜欢
    • 2013-08-04
    • 1970-01-01
    • 2015-03-28
    • 2018-07-02
    • 1970-01-01
    • 2011-05-19
    • 2018-11-15
    • 1970-01-01
    • 2013-12-24
    相关资源
    最近更新 更多