foreach و $_

حلقه foreach روی لیست‌ها، بازه 1..10 و متغیر پیش‌فرض $_.

foreach — پادشاه حلقه‌های پرل

برای پیمایش لیست‌ها، foreach بهترین دوست شماست:

foreach my $item ("سیب", "موز", "پرتقال") {
  say "میوه: $item";
}

بازه (Range) با ..

foreach my $i (1..5) {
  say "شماره $i";
}

foreach my $c ('a'..'e') {
  print "$c ";
}
print "\n";

روی آرایه

my @nums = (10, 20, 30, 40);
foreach my $n (@nums) {
  say "n = $n";
}

$_ — متغیر جادویی

اگر متغیر ندهید، پرل از $_ (متغیر پیش‌فرض) استفاده می‌کند:

foreach (1..3) {
  say "شماره $_";    { $_ مقدار فعلی است }
}
$_ در خیلی از جای پرل «پیش‌فرض» است: در foreach، در regex، در print بدون آرگومان. بهش می‌گن «topic»!

اصلاح‌گر foreach

say "عدد: $_" foreach 1..3;

my @arr = (5, 10, 15);
my $sum = 0;
$sum += $_ foreach @arr;    { جمع در یک خط! }

ایندکس با بازه

my @fruits = ("سیب", "موز", "پرتقال");
foreach my $i (0..$#fruits) {     { $#fruits = آخرین ایندکس }
  say ($i + 1) . ". $fruits[$i]";
}

foreach در برابر for

در پرل، for و foreach کاملاً مترادف‌اند! می‌توانید هر جا for بنویسید و منظور foreach باشد. اما برای خوانایی: for برای C-style و foreach برای لیست.

خلاصه

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

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