### Eclipse Workspace Patch 1.0
Index: lib/HTML/FormFu/Element/_Group.pm
===================================================================
--- lib/HTML/FormFu/Element/_Group.pm
+++ lib/HTML/FormFu/Element/_Group.pm
@@ -90,8 +90,8 @@
croak "options argument must be a single array-ref" if @_ > 2;
if ( defined $arg ) {
- eval { @options = @$arg };
- croak "options argument must be an array-ref" if $@;
+ croak "options argument must be an array-ref" if ref $arg ne 'ARRAY';
+ @options = @$arg;
if ( $self->empty_first ) {
push @new, $self->_get_empty_first_option;
@@ -124,18 +124,7 @@
sub _parse_option {
my ( $self, $item ) = @_;
- eval { my %x = %$item };
-
- if ( !$@ ) {
-
- # was passed a hashref
- return $self->_parse_option_hashref($item);
- }
-
- eval { my @x = @$item };
- if ( !$@ ) {
-
- # was passed an arrayref
+ if ( ref $item eq 'ARRAY' ) {
return {
value => $item->[0],
label => $item->[1],
@@ -144,6 +133,9 @@
label_attributes => {},
};
}
+ elsif ( ref $item eq 'HASH' ) {
+ return $self->_parse_option_hashref($item);
+ }
croak "each options argument must be a hash-ref or array-ref";
}
@@ -267,8 +259,8 @@
my @values;
if ( defined $arg ) {
- eval { @values = @$arg };
- croak "values argument must be an array-ref" if $@;
+ croak "values argument must be an array-ref" if ref $arg ne 'ARRAY';
+ @values = @$arg;
}
my @new = map { {
@@ -297,8 +289,8 @@
if @_ > 2;
if ( defined $arg ) {
- eval { @values = @$arg };
- croak "value_range argument must be an array-ref" if $@;
+ croak "value_range argument must be an array-ref" if ref $arg ne 'ARRAY';
+ @values = @$arg;
}
croak "range must contain at least 2 values" if @$arg < 2;