Home arrow Perl Programming arrow Page 3 - Perl 101 (Part 5) - Sub-Zero Code

...And Memorable Friends - Perl

This week, Perl 101 introduces you to subroutines and teaches youhow to structure your code for maximum reusability. Also included: returnvalues, my() and local() constructs, and a marriage proposal.

  1. Perl 101 (Part 5) - Sub-Zero Code
  2. Great Movies...
  3. ...And Memorable Friends
  4. Popping The Question
  5. Turning Up The Heat
  6. My() Hero!
  7. The Age Gauge
By: Vikram Vaswani and Harish Kamath, (c) Melonfire
Rating: starstarstarstarstar / 7
July 21, 2000

print this article


Of course, defining a subroutine is only half of the puzzle - for it to be of any use at all, you need to invoke it. In Perl, this is accomplished by calling the subroutine by its name, as we've done in the last line of the example above. When invoking a subroutine in this manner, it's usually a good idea to precede the name with an ampersand [&]- this is not essential, though, and the following would also work:

#!/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;
However, it's good programming practice to precede the name of a Perl subroutine with an ampersand when invoking it - this helps to differentiate the Perl subroutine from array or scalar variables that may have the same name, and from pre-defined Perl functions. For example, consider this piece of code, in which we've defined a subroutine called &print, which also happens to be the name of the in-built Perl print() function:

#!/usr/bin/perl # define a subroutine sub print { print "Ross\n"; } # main program begins here print "Question: which Friend once had a pet monkey?\n"; # call the subroutine print;
In this case, when you run the program, you'll get the following:
Question: which Friend once had a pet monkey?

Here, Perl assumes that the line containing the print statement is a call to the in-built Perl print() function, rather than the user-defined Perl &print subroutine. To avoid this kind of error, you should either avoid naming your subroutines after reserved words, or precede the subroutine call with an ampersand. In the example above, if you changed the last line from


Perl would understand the subroutine call correctly, and display the desired output.

Question: which Friend once had a pet monkey?

This article copyright Melonfire 2000. All rights reserved.

>>> More Perl Programming Articles          >>> More By Vikram Vaswani and Harish Kamath, (c) Melonfire

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort


- Perl Turns 25
- Lists and Arguments in Perl
- Variables and Arguments in Perl
- Understanding Scope and Packages in Perl
- Arguments and Return Values in Perl
- Invoking Perl Subroutines and Functions
- Subroutines and Functions in Perl
- Perl Basics: Writing and Debugging Programs
- Structure and Statements in Perl
- First Steps in Perl
- Completing Regular Expression Basics
- Modifiers, Boundaries, and Regular Expressio...
- Quantifiers and Other Regular Expression Bas...
- Parsing and Regular Expression Basics
- Hash Functions

Developer Shed Affiliates


Dev Shed Tutorial Topics: