foreach は 配列に入っているデータを順番に1個ずつ取り出したいときに使います。
@obento = ("ご飯", "タコさんウインナー", "お漬け物");
foreach my $ryouri (@obento) {
print "$ryori\n";
}
まず、@obento の中に 「ご飯」と「タコさんウインナー」と「お漬け物」を入れます。
次に foreach (フォーイーチ) を使って、@obento の中から一品ずつ料理を取り出して、表示させています。
表示結果は、
ご飯
タコさんウインナー
お漬け物
となります。
foreach my $ryouri (@obento) の部分で、@obento から順番にひとつずつ取り出して、$ryori に入れています。
my は変数の前につけて、「この変数はここでしか使わない変数です」ということを主張しています。この場合は、「$ryori という変数は、このforeachの中だけでしか使わない変数」という意味で、もしここ以外の場所で $ryori を使っていた場合は、別の変数として扱われます。
考えだすと難しいので、foreach my $~~ (@~~) { } をセットで覚えてしまいましょう。