2.3. Dynamic References to Functions
It is possible to define a dynamic reference to a function. The code of its function is written as part of the assignment expression and can see all the variables in the scope in which it was defined. Here's an example:
#!/usr/bin/perl use strict; use warnings; my $increment; { my $counter; # The definition of a dynamic reference to function comes inside # a "sub {" ... "}" closure $increment = sub { print $counter, "\n"; return $counter++; }; } while ($increment->() < 100) { # Do Nothing }