- 01Setting up (what you'll need)
- 02Your first output (print)
- 03Variables (scalar variables, $)
- 04Branching (the if statement)
- 05Repeating (the for loop)
- 06Writing a subroutine (a function)
- 07Repeating (the while loop)
- 08Working with arrays (@)
- 09Working with hashes (%)
- 10Regular expression matching
- 11Substitution with regular expressions (s///)
- 12Working with strings
- 13References
- 14Anonymous subroutines
- 15File input and output, the basics
- 16Modules and use strict / warnings
- 17The ternary operator
- 18Sorting (sort)
- 19Packages and the basics of object orientation
- 20[Project] Build a small inventory system
Anonymous subroutines
This lesson covers the anonymous subroutine — a closure — which you can define on the spot without giving it a name.
Writing my $var = sub { ... }; assigns a subroutine to a variable. You call it with $var->(args).
The sample code creates the anonymous subroutine my $add_tax = sub { my $price = shift; return $price + int($price / 10); }; and uses it to add sales tax to several product prices.
A common early stumble is the call syntax. Unlike an ordinary subroutine, an anonymous one held in a variable is called with the arrow: $var->(args).
In professional work, anonymous subroutines come up constantly alongside functions such as map and grep that apply logic to each element of an array.
๐งช This site can't compile or run Perl directly, so it checks on the spot whether what you typed matches the reference code (scoring happens entirely in your browser โ nothing is sent anywhere).
