Defining a function is only the first step. Generally, one defines a function so that it can be called. With perl, you have to use an extra symbol to specify that you're calling a function, where Python infers it if you put a parameter list. Common Lisp lets you do it either way.
Here's a hypothetical Python:
mana=foo(100)
mana(-10)
mana(-15)
Here's Perl: $mana=foo(100);
&$mana(-10);
&$mana(-15);
Common Lisp: (setf mana (foo 100))
(funcall mana -10)
(funcall mana -15)
Also Common Lisp: (setf (symbol-function 'mana) (foo 100))
(mana -10)
(mana -15)
Scroll down to Appendix: Power.
The Perl solution is close to the Lisp solution in terms of brevity. The solution in other languages tend to be longer or the problem can't be solved at all.
Choice quote:
"In the rivalry between Perl and Python, the claim of the Python hackers seems to be that that Python is a more elegant alternative to Perl, but what this case shows is that power is the ultimate elegance: the Perl program is simpler (has fewer elements), even if the syntax is a bit uglier."