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 برای لیست.
خلاصه
- foreach my $x (LIST) — پیمایش لیست
- بازه: 1..10 و 'a'..'z'
- بدون متغیر → $_
- دستور foreach LIST; — اصلاحگر
این مبحث بخشی از دوره آموزش کامل پرل است.