our %proto = ( '@\@' => sub { return !grep (ref( $_ ) ne 'ARRAY' ), @_; }, # ... # proto => sub { enforcement-code } ); sub foo { $proto{ '@\@' }{@_} or die; # followed by "real" code for sub foo }