POE::Declare::Meta::Slot - Abstract base class for named class elements


In POE::Declare, each class is a simple controlled structure with a set of named elements within it, known as "slots".

Each slot uniquely occupies a name (just like in a HASH) except that in the POE::Declare model, that name is reserved across all resources (the method name, the HASH key, and in some cases certain method names below the root name as well).

For example, a slot named "foo" of type Param will consume the HASH key "foo", have an accessor method "foo", and take a "foo" parameter in the object constructor.

A slot named "mytimeout" filled with a Timeout will consume the "mytimeout" HASH key, and may have methods such as mytimeout_alarm, mytimeout_keepalive and mytimeout_clear.



  # You cannot create a Slot directly
  my $object = POE::Declare::Meta::Attribute->new(
      name => 'foo',

The default slot constructor takes a list of named parameters, and creates a HASH-based object using them. The default implementation does not check its parameters, as it expects them to be provided by other functions which themselves will have already checked params.


Bugs should be always be reported via the CPAN bug tracker at

For other issues, or commercial enhancement or support, contact the author.


Adam Kennedy <>


POE, POE::Declare


Copyright 2006 - 2012 Adam Kennedy.

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

The full text of the license can be found in the LICENSE file included with this module.