Perl 101 (Part 5) - Sub-Zero Code - Great Movies... (
Page 2 of 7 )
Ask a geek
to define the term "subroutine", and he'll probably tell you that a subroutine
is "a block of statements that can be grouped together as a named entity." Since
this definition raises more questions than answers [the primary one being, what
on earth are you doing hanging around with geeks in the first place], we'll
simplify things by informing you that a subroutine is simply a set of program
statements which perform a specific task, and which can be called, or executed,
from anywhere in your Perl program.
There are two important reasons why
subroutines are a "good thing". First, a subroutine allows you to separate your
code into easily identifiable subsections, thereby making it easier to
understand and debug. And second, a subroutine makes your program modular by
allowing you to write a piece of code once and then re-use it multiple times
within the same program.
Let's take a simple example, which demonstrates
how to define a sub-routine and call it from different places within your Perl
script:
#!/usr/bin/perl
# define a subroutine
sub greatest_movie
{
print "Star Wars\n";
}
# main program begins here
print "Question: which is the greatest movie of all time?\n";
# call the subroutine
&greatest_movie;
# ask another question
print "Question: which movie introduced the world to Luke Skywalker, Yoda
and Darth Vader?\n";
# call the subroutine
&greatest_movie;
Now run it - you should see something like this:
Question: which is the greatest movie of all time?
Star Wars
Question: which movie introduced the world to Luke Skywalker, Yoda and
Darth Vader?
Star Wars
Let's take this line by line. The first thing we've done in
our Perl program is define a new subroutine with the "sub" keyword; this keyword
is followed by the name of the subroutine. All the program code attached to that
subroutine is then placed within a pair of curly braces - this program code
could contain loops, conditional statements, calls to other subroutines, or
calls to other Perl functions. In the example above, our subroutine has been
named "greatest_movie", and only contains a call to Perl's print()
function.
Here's the typical format for a subroutine:
sub subroutine_name
{
statement 1...
statement 2...
.
.
.
statement n...
}
This article copyright Melonfire
2000. All rights reserved.