Perl Programming Page 7 - Perl 101 (Part 3) - Looping The Loop |
Before we go on to our last - also known as final - control structure ofthe day, we're going to take a quick detour and introduce you to adifferent kind of variable. As you already know, Perl comes with scalar variables, which can be used tostore a single value. But what you may not know is that it also comes witha mechanism to store multiple values in a single variable. This variable isknown as an "array variable", and it is a useful method of storing andrepresenting related information. All the standard rules which apply when naming scalar variables also applyin the case of array variables, with one important exception - where ascalar variable name is preceded by a dollar [$] sign, an array variablename is preceded by an @ symbol. Note also that Perl does not place any restrictions on array and scalarvariables sharing the same name in Perl - so the array @stuff is differentfrom the scalar $stuff. Now, let's say that you wanted to create an array containing the names ofyour friends: Thus the array variable @friends contains six elements. Each element of the array is a scalar variable, and can be accessed usingscalar notation, with a suffix denoting the element's position in thearray. So, in order to extract the first element of the array @friends,you'd use while would give you the sixth element of the array, Ross. Similarly, if you wanted to modify a particular element of the array, youcould use the scalar notation above to accomplish your task, like this: Your array would now contain Note that the first element of an array is always referred to by the index0 - this concept, known as "zero-based indexing" often confuses noviceprogrammers, and is just one more reason why geeks have so few friends. An array can contain both string and numeric data - for example, this isperfectly valid: How about a quick example to illustrate how data can be stored in a singlearray variable: And here's what it looks like: Let's walk you through this: we've begun by initializing two arrayvariables and one scalar variable. The array @subjectlist contains a listof the subjects to be graded, and the array @gradelist will be populated bythe user with the actual grades. The scalar variable $total will be used todisplay a total figure at the end. Next, we've used a "for" loop to display a question, and assign the user'sinput to the @gradelist array in the appropriate slot via the $x counter.Once all four subjects are taken care of [note the conditional expressionin the "for" loop, which automatically stops looping when the counterreaches 4], we've simply used the print() function and a second "for" loopto display a neatly-tabulated row of grades and subjects. The second loop also adds each grade to the variable $total, and thisdisplays this total value at the end of the program. A couple of other points to note: * The \t character used in the print() statements above is used to generatea single "tab" space. * The notation $total += $gradelist[$y]; is simply a Perl shortcut for $total = $total + $gradelist[$y]; This article copyright Melonfire 2000. All rights reserved.
blog comments powered by Disqus |