Chapter 10. Subroutines
Composing mortals with immortal fire.
Introduction
To avoid the dangerous practice of copying and pasting code, larger programs reuse chunks of code as subroutines and functions. We’ll use the terms subroutine and function interchangeably because Perl doesn’t distinguish between the two. 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 subroutines are declared. 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 AUTOLOAD, or
generated using closures, which can act as function templates.
If you are familiar with other programming languages, several characteristics of Perl’s functions may surprise you if you’re unprepared for them. Most recipes in this chapter illustrate how to be aware of—and to take advantage of—these properties.
Perl functions have no formal, named parameters, but this is not necessarily a bad thing. See Recipe 10.1 and Recipe ...
Get Perl Cookbook, 2nd Edition 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.