foreach Loops

The next part of the script introduces one of those things that seem really obvious to programmers, but can cause nonprogrammers some confusion until they figure out what’s going on. I’m talking about loops. In this case, a loop created with Perl’s foreach function.

The idea with a loop is to make a block of programming code that performs a specific set of actions, then feed it a series of thingies for processing. It’s somewhat like an assembly line, and like an assembly line it’s really efficient for the programmer because she has to write the code block only once, but can easily make the program run thousands or millions of thingies through it. The illusion of power this produces is part of why people become addicted to programming and stay up all night debugging code.

Anyway, here’s the next chunk of code from the script, showing the foreach loop in action:

# bundle up form submissions into a mail_body

$mail_body = '';

foreach $field (param) {
    foreach $value (param($field)) {
        $mail_body .= "$field: $value\n";
    }
}

First off, we assign the empty string (that is, nothing) to a scalar variable called $mail_body. You’re probably thinking that’s a somewhat silly thing to do, and you’re right, it is rather silly, at least from the perspective of the behavior of the script. If the $mail_body variable had previously existed in the script and had contained something already, this line would actually do something because it would empty out the contents of the variable. But ...

Get Perl for Web Site Management now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.