http://www.perlmonks.org?node_id=11124935


in reply to Re: Length of Array Passed as Reference
in thread Length of Array Passed as Reference

Or:

use feature 'state'; use Types::Standard -types; use Type::Params 'compile'; sub test_function { state $signature = compile( ArrayRef[Str] ); my ( $ref ) = &$signature; # function body goes here }

The signature will check that the function was passed the correct number of arguments, the correct types, etc, and die if it wasn't.