توابع هش
keys/values، exists/delete و پیمایش هش با foreach.
keys — لیست کلیدها
my %grades = (Ali => 18, Sara => 15, Reza => 20);
my @keys = keys %grades; { ("Ali", "Sara", "Reza") — بدون ترتیب! }
هشها ترتیب ندارند! همیشه برای خروجی مرتب:
sort keys %hvalues — لیست مقادیر
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";
خلاصه
- keys/values — لیست کلیدها/مقادیر
- exists چک کلید، delete حذف
- پیمایش: foreach (sort keys %h)
این مبحث بخشی از دوره آموزش کامل پرل است.