- my ($self, $name, $value, $attr) = @_;
-
- if (ref $name eq 'HASH') {
- # only attributes provided (first argument)
- $attr = $name;
- }
- elsif (ref $value eq 'HASH') {
- # name shorthand (attributes in value parameter)
- $attr = $value;
- $attr->{name} = $name;
- }
- else {
- # name and value shorthands (all vars keep their assigned values)
- $attr ||= {};
- $attr->{name} = $name;
- $attr->{value} = $value;
- }
+ my $self = shift;
+ my ($name, $value, $attr) = $self->_attr(2, @_);