পরীক্ষা করে দেখুন perlfaq4: আমি দুই হ্যাশ কীভাবে একত্রীকরণ । পার্ল ডকুমেন্টেশনে ইতিমধ্যে প্রচুর ভাল তথ্য রয়েছে এবং অন্য কারও উত্তর দেওয়ার অপেক্ষা না করে আপনি এখনই তা পেতে পারেন। :)
আপনি দুটি হ্যাশ একত্রীকরণের সিদ্ধান্ত নেওয়ার আগে, আপনাকে সিদ্ধান্ত নিতে হবে যদি উভয় হ্যাশগুলিতে কীগুলি একই থাকে এবং আপনি যদি মূল হ্যাশগুলি সেটির মতো ছেড়ে যেতে চান তবে কি করবেন।
আপনি যদি আসল হ্যাশগুলি সংরক্ষণ করতে চান তবে একটি হ্যাশ (% হ্যাশ 1) একটি নতুন হ্যাশ (% নতুন_হ্যাশ) এ অনুলিপি করুন, তারপরে অন্যান্য হ্যাশ (% হ্যাশ 2) থেকে নতুন হ্যাশগুলিতে কীগুলি যুক্ত করুন% কীটি ইতিমধ্যে% new_hash এ বিদ্যমান রয়েছে তা পরীক্ষা করে দেখুন সদৃশগুলির সাথে কী করবেন তা সিদ্ধান্ত নেওয়ার সুযোগ দেয়:
my %new_hash = %hash1;
foreach my $key2 ( keys %hash2 )
{
if( exists $new_hash{$key2} )
{
warn "Key [$key2] is in both hashes!";
...
next;
}
else
{
$new_hash{$key2} = $hash2{$key2};
}
}
আপনি যদি একটি নতুন হ্যাশ তৈরি করতে না চান তবে আপনি এখনও এই লুপিং কৌশলটি ব্যবহার করতে পারেন; কেবলমাত্র% নতুন_হ্যাশকে% হ্যাশ 1 এ পরিবর্তন করুন।
foreach my $key2 ( keys %hash2 )
{
if( exists $hash1{$key2} )
{
warn "Key [$key2] is in both hashes!";
...
next;
}
else
{
$hash1{$key2} = $hash2{$key2};
}
}
যদি আপনার কোনও যত্ন নেই যে একটি হ্যাশ অন্য এবং কী থেকে মানগুলি ওভাররাইট করে, আপনি কেবল একটি হ্যাশ স্লাইস ব্যবহার করে অন্য একটি হ্যাশ যুক্ত করতে পারেন। এই ক্ষেত্রে,% হ্যাশ 2 থেকে প্রাপ্ত মানগুলি হ্যাশ 1 থেকে মানগুলি প্রতিস্থাপন করে যখন তাদের কীগুলিতে অভিন্ন থাকে:
@hash1{ keys %hash2 } = values %hash2;