2012-06-08 13 views
7

Mam tablicę say @array. Chciałbym wiedzieć, które wartości tablicy tworzą klucze mieszania, powiedzmy% hasza. Czy istnieje prosty sposób na zrobienie tego poza użyciem pętli for?Jak ustalić, czy wartości tablicy są kluczami skrótu w Perlu?

np

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

W tym przypadku należy tylko wyjściowy 'A' i 'B'.

+3

Masz jakieś problemy gołe słowo, jeśli używasz 'use strict;' (i powinno być). –

+0

Dobrze. Jeśli tablica ta ma zawierać literalne litery "a", "b" i "c", powinna to być '@array = ('a', 'b', 'c');' lub '@array = qw (abc); ' –

+0

@ JonathanLeffler: Używam ścisłego, po prostu nie uwzględniłem go w przykładzie. – Jordan

Odpowiedz

17

ten powinien zrobić:

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

my @result = grep { exists $hash{$_} } @array ; 
Powiązane problemy