### 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;