Provided by: libobject-pad-perl_0.61-1_amd64
NAME
"Object::Pad::MOP::Field" - meta-object representation of data field of a "Object::Pad" class
DESCRIPTION
Instances of this class represent a data field of a class implemented by Object::Pad. Accessors provide information about the field. The special "value" method allows access to the value of the given field on instances of its class, letting the meta-object be used as a proxy to it. This API should be considered experimental even within the overall context in which "Object::Pad" is expermental.
METHODS
name $name = $metafield->name Returns the name of the field, as a plain string including the leading sigil character. sigil $sigil = $metafield->sigil Since version 0.56. Returns the first character of the field name, giving just its leading sigil. class $metaclass = $metafield->class Returns the Object::Pad::MOP::Class instance representing the class of which this field is a member. value $current = $metafield->value( $instance ) @current = $metafield->value( $instance ) %current = $metafield->value( $instance ) An accessor method which returns the current value of the field from an object instance. $metafield->value( $instance ) = $new On scalar fields, this method can also act as an lvalue mutator allowing a new value to be set. has_attribute $exists = $metafield->has_attribute( $name ) Since version 0.57. Returns a boolean indicating whether the named attribute has been attached to the field. The attribute name should not include the leading colon (":") character. get_attribute_value $value = $metafield->get_attribute_value( $name ) Since version 0.57. Returns the stored value of an attached attribute, if one exists. If the attribute has not been attached then an exception is thrown. Note that most core-defined attributes will either store no data at all, or a method name string. This accessor method is provided largely for the benefit of obtaining data defined by third-party attributes, which may more clearly define how that data is generated and used.
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>