The value are then associated with the attribute. Multiple attributes may be ascribed to any declaration, but each must have its own colon. Each attribute specification consists of a simple name, optionally followed by a parenthesised list of values.
Attribute values are always scalars.
If the optional value list is not specified, the attribute is ascribed the value 1 . If the list is specified, but empty, the attribute's value is undef . If the list contains a single scalar element, that element becomes the attribute's value. If the list contains two or more elements, it is converted to an anonymous array and a reference to that array is ascribed to the element. When called without its optional value list, the operator returns the current value of the corresponding attribute.