Perhaps one of Perl 5's most glaring oversights is its lack of formal subroutine parameter lists. There are a number of solutions on CPAN that attempt to solve this problem with various syntactic sweeteners of diverse complexity and style. In recent releases of Perl 5, there is even an experimental signature system in the core. But all of them — ultimately — come down to unpacking the magical
@_ array into lexical variables for the function to use.
Perl 6 has a sophisticated, robust, and flexible signature system for subroutines and methods. Let's check it out.