+ if (ref $name eq 'HASH') {
+ my @return = map { $self->hidden($_, $name->{$_}, $attr) } sort keys %$name;
+ return wantarray ? @return : join(defined $, ? $, : '', @return);
+ }
+
+ if (ref $value eq 'ARRAY') {
+ my @return = map { $self->hidden($name, $_, $attr) } @$value;
+ return wantarray ? @return : join(defined $, ? $, : '', @return);
+ }
+
+ $attr->{name } = $name if defined $name;
+ $attr->{value} = $value if defined $value;
+ $attr->{value} = $self->{default}->{$name}
+ if not defined $attr->{value} and defined $name and defined $self->{default};
+ $attr->{type} = 'hidden' unless defined $attr->{type};