توابع هش

keys/values، exists/delete و پیمایش هش با foreach.

keys — لیست کلیدها

my %grades = (Ali => 18, Sara => 15, Reza => 20);
my @keys = keys %grades;      { ("Ali", "Sara", "Reza") — بدون ترتیب! }
هش‌ها ترتیب ندارند! همیشه برای خروجی مرتب: sort keys %h

values — لیست مقادیر

my @vals = values %grades;    { (18, 15, 20) }

پیمایش هش

foreach my $name (sort keys %grades) {
  say "$name = $grades{$name}";
}
این الگوی طلایی را حفظ کنید: foreach my $k (sort keys %h) — پیمایش مرتب هش!

exists — آیا کلید هست؟

if (exists $grades{Ali}) {
  say "Ali در لیست هست";
}

delete — حذف کلید

delete $grades{Sara};      { حذف کلید و مقدارش }

مثال: میانگین نمرات

my %grades = (Ali => 18, Sara => 15, Reza => 20);

my $sum = 0;
$sum += $_ foreach values %grades;
my $avg = $sum / scalar(keys %grades);
say "میانگین: $avg";

مثال: بهترین دانش‌آموز

my %grades = (Ali => 18, Sara => 15, Reza => 20);
my ($best, $best_score) = ("", 0);
foreach my $name (keys %grades) {
  if ($grades{$name} > $best_score) {
    $best = $name;
    $best_score = $grades{$name};
  }
}
say "بهترین: $best با $best_score";

خلاصه

این مبحث بخشی از دوره آموزش کامل پرل است.

ابزارهای مرتبط