Chapter 10. Subroutines
Introduction
Composing mortals with immortal fire.
To avoid the dangerous practice of copying and pasting code throughout a program, your larger programs will probably reuse chunks of code with subroutines. We’ll use the terms subroutine and function interchangeably, because Perl doesn’t distinguish between the two any more than C does. Even object-oriented methods are just subroutines that are called using a special syntax, described in Chapter 13.
A subroutine is declared with the
sub
keyword. Here’s a simple
subroutine definition:
sub hello { $greeted++; # global variable print "hi there!\n"; }
The typical way of calling that subroutine is:
hello(); # call subroutine hello with no arguments/parameters
Because Perl compiles your program before executing it, it
doesn’t matter where your subroutines are declared. These
definitions don’t have to be in the same file as your main
program. They can be pulled in from other files using the
do
, require
, or
use
operators, as described in Chapter 12. They can even be created on the fly using
eval
or the AUTOLOAD mechanism, or generated using
closures, which can be used as function templates.
If you are familiar with other programming languages, several characteristics of Perl’s functions may surprise you if you’re not prepared. Most of the recipes in this chapter illustrate how to take advantage of—and be aware of— these properties.
Perl functions have no formal, named ...
Get Perl Cookbook 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.