Perl'de nasıl belirli bir diziden gelip kimin bir karma oluşturabilirim?
Hadi bir dizi var, ve bir sürü yapıyor olacağım biliyorum "dizisi X içeriyor Mu?" denetler. Bunu yapmak için etkili bir yol tuşlarını dizisinin elemanları nerede, karma, içine bir dizi açmak için, ve sonra sadece
if($hash{X}) { ... }söyleyebilirsin
Kolay bir şekilde yapmak için bu dizi karma dönüşüm var mı? İdeal olarak, anonim bir dizi çekmek ve anonim bir karma dönmek için çok yönlü yeterli olmalıdır.
CEVAP
%hash = map { $_ => 1 } @array;
Değil kısa olarak "@hash{@dizi} = ..." çözümler, ama oradakiler gerektirir karma ve dizi çoktan tanımlanmış başka bir yerde, Oysa bu bir alabilir isimsiz bir dizi ve iade isimsiz karma.
Bu ne dizideki her öğe almak ve bir ile bir çift "1". Bu liste (anahtar 1, anahtar, 1, anahtar 1) çift olsun atanan bir karma, tek numaralı olanlar olmak karma anahtarları ve çift numaralı olanlar olmak ilgili değerler.