---
name: "Kavorka::Manual::PrototypeAndAttributes"
section: "3pm"
platform: "linux"
package: "libkavorka-perl"
version: "0.039-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/Kavorka::Manual::PrototypeAndAttributes"
---

# Kavorka::Manual::PrototypeAndAttributes(3pm)

the more rarely used features of Perl subroutines

## NAME

Kavorka::Manual::PrototypeAndAttributes - the more rarely used features of Perl subroutines

## DESCRIPTION

### The Prototype

Like with the sub keyword, a prototype may be provided for functions. Method dispatch ignores this, so it's only likely to be useful for `"fun"`, and even then, rarely.

Like Function::Parameters, Kavorka uses `":(...)"` to indicate a prototype. This avoids ambiguity between signatures, prototypes and attributes.

For compatibility with Perl 5.20, the special attribute `":prototype(...)"` is supported as an alternative mechanism for expressing prototypes.

### The Attributes

Attributes are parsed as per "Subroutine Attributes" in perlsub.

For anonymous functions, some attributes (e.g. `":lvalue"`) may be applied too late to take effect. Attributes should mostly work for named functions though.

## BUGS

Please report any bugs to \<http://rt.cpan.org/Dist/Display.html?Queue=Kavorka\>.

## SEE ALSO

Kavorka::Manual.

## AUTHOR

Toby Inkster \<tobyink@cpan.org\>.

## COPYRIGHT AND LICENCE

This software is copyright (c) 2013-2014, 2017 by Toby Inkster.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

## DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
