Part 3 in our continuing series on the popular scripting language, Perl. This week's article teaches you more about Perl's controlstructures - including the FOR and WHILE loops - and also introduces you toPerl's array variables.
Both "while" and "until" are typically used when you don't know for certainhow many times the program should loop - in the examples above, forexample, the program continues to loop until the user enters the rightanswer. But Perl also comes with a mechanism for executing a set ofstatements a specific number of times - and it's called the "for" loop:
for (initial value of counter; condition; update counter)
Doesn't make any sense? Well, the "counter" here refers to a scalarvariable that is initialized to a specific numeric value [usually 0 or 1];this counter is used to keep track of the number of times the loop has beenexecuted.
Each time the loop is executed, the "condition" is tested for validity. Ifit's found to be valid, the loop continues to execute and the value of thecounter is updated appropriately; if not, the loop is terminated and thestatements following it are executed.
Take a look at this simple example of how the "for" loop can be used:
print("It's now $a PM. Too early!\n");
Here's what the output looks like:
It's now 5 PM. Too early!
It's now 6 PM. Too early!
It's now 7 PM. Too early!
It's now 8 PM. Too early!
It's now 9 PM. Too early!
It's now 10 PM. Too early!
It's now 11 PM. Too early!
How does this work? We've begun by initializing the variable $a to 5. Eachtime the loop is executed, it checks whether or not $a is less than 12; ifit is, a line of output is printed and the value of $a is increased by 1 -that's where the $a++ comes in. Once the value of $a reaches 12, the loopis terminated and the line following it is executed.
And, for something slightly more complex, take a look at our re-write ofthe factorial calculator above:
# factorials version 2.0
# ask for a number.
print ("Gimme a number!\n");
# process it
$number = <STDIN>;
# use the FOR loop to calculate the factorial
# note how we've initialized variables within the
# loop itself - you can do this too!
for ($factorial=1,$counter = $number; $counter > 1; $counter--)
$factorial = $factorial * $counter;
print ("The factorial of $number is $factorial.\n");
This article copyright Melonfire 2000. All rights reserved.