Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Perl中,如何确定数组的值是否是散列的键?_Arrays_Perl_Hash - Fatal编程技术网

Arrays 在Perl中,如何确定数组的值是否是散列的键?

Arrays 在Perl中,如何确定数组的值是否是散列的键?,arrays,perl,hash,Arrays,Perl,Hash,我有一个数组,比如@array。我想知道数组的哪些值构成散列的键,比如说%hash。除了使用for循环之外,还有其他简单的方法吗 e、 g 在这种情况下,它应该只输出'a'和'b' 这应该可以做到: my @array = qw(a b c) ; my %hash = ( a => 1 , b => 2 ) ; my @result = grep { exists $hash{$_} } @array ; 如果你使用use strict,你会遇到一些赤裸裸的问题(你应该是)。对。

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

e、 g

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

这应该可以做到:

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

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

如果你使用
use strict,你会遇到一些赤裸裸的问题(你应该是)。对。如果该数组应该包含文字字母“a”、“b”和“c”,那么它应该是
@array=('a'、'b'、'c')
@array=qw(a-b-c)@JonathanLeffler:我使用strict,只是没有在示例中包含它。
my @array = qw(a b c) ;
my %hash = ( a => 1 , b => 2 ) ;

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