ساختارهای داده تودرتو

هش از آرایه‌ها، آرایه از هش‌ها و پیمایش ساختارهای تودرتو.

دنیای واقعی = داده تودرتو

داده‌های واقعی ترکیبی‌اند: هش از آرایه‌ها، آرایه از هش‌ها و...

هش از آرایه‌ها

my %grades = (
  Ali  => [18, 15, 20],
  Sara => [12, 19, 16],
);

say $grades{Ali}[0];      { 18 — نمره اول علی }
say scalar @{$grades{Ali}};  { 3 — تعداد }

پیمایش هش از آرایه‌ها

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

آرایه از هش‌ها

my @products = (
  { name => "Laptop", price => 25000000, qty => 3 },
  { name => "Mouse",  price => 350000,   qty => 10 },
);

foreach my $p (@products) {
  say "$p->{name}: " . ($p->{price} * $p->{qty});
}

هش از هش‌ها

my %users = (
  ali => { name => "Ali", age => 16 },
  sara => { name => "Sara", age => 15 },
);
say $users{ali}{age};      { 16 }

مثال کامل: گزارش نمرات

my %class = (
  math => { Ali => 18, Sara => 15 },
  phys => { Ali => 16, Sara => 19 },
);

foreach my $lesson (sort keys %class) {
  print "$lesson: ";
  foreach my $name (sort keys %{$class{$lesson}}) {
    print "$name=$class{$lesson}{$name} ";
  }
  print "\n";
}

خلاصه

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

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