use Types::Standard qw( is_ArrayRef is_HashRef );
use Carp qw( croak );
sub process_data {
my ($self, $data) = @_;
if (is_ArrayRef($data)) {
$self->_process_value($_) for @$data;
}
elsif (is_HashRef($data)) {
$self->_process_value($_) for values %$data;
}
else {
croak "Could not grok data";
}
}
####
use Types::Standard qw( ArrayRef HashRef Any );
use Type::Utils qw( match_on_type );
use Carp qw( croak );
sub process_data {
my ($self, $data) = @_;
match_on_type $data,
ArrayRef, sub { $self->_process_value($_) for @$data },
HashRef, sub { $self->_process_value($_) for values %$data },
Any, sub { croak "Could not grok data" };
}
##
##
use Types::Standard qw( ArrayRef HashRef Any );
use Type::Utils qw( compile_match_on_type );
use Carp qw( croak );
sub process_data {
my ($self, $data) = @_;
state $matcher = compile_match_on_type
ArrayRef, sub { $self->_process_value($_) for @$data },
HashRef, sub { $self->_process_value($_) for values %$data },
Any, sub { croak "Could not grok data" };
$matcher->($data);
}
##
##
use Types::Standard qw( ArrayRef HashRef Any );
use Type::Utils qw( compile_match_on_type );
use Carp qw( croak );
sub process_data {
my ($self, $data) = @_;
state $matcher = compile_match_on_type
ArrayRef, sub { my ($d, $s) = @_; $s->_process_value($_) for @$d },
HashRef, sub { my ($d, $s) = @_; $s->_process_value($_) for values %$d },
Any, sub { croak "Could not grok data" };
$matcher->($data, $self);
}
##
##
use Types::Standard qw( ArrayRef HashRef Any );
use Type::Utils qw( compile_match_on_type );
use Carp qw();
sub process_data {
my ($self, $data) = @_;
state $matcher = compile_match_on_type
ArrayRef, q{ my ($d, $s) = @_; $s->_process_value($_) for @$d },
HashRef, q{ my ($d, $s) = @_; $s->_process_value($_) for values %$d },
Any, q{ Carp::croak("Could not grok data") };
$matcher->($data, $self);
}