Array-IntSpan
view release on metacpan or search on metacpan
lib/Array/IntSpan/Fields.pm view on Meta::CPAN
my @newcb = $self->adapt_range_in_cb(@_) ;
return $self->{range}->$method ($s, $e, $value, @newcb);
};
}
sub adapt_range_in_cb
{
my $self = shift;
# the callbacks will be called with ($start, $end,$payload) or
# ($start,$end)
my @callbacks = @_ ;
return map
{
my $old_cb = $_; # required for closure to work
defined $old_cb ?
sub
{
my ($s_int,$e_int,$value) = @_ ;
my ($s,$e) = $self->int_to_field($s_int,$e_int) ;
$old_cb->($s,$e,$value);
}
: undef ;
} @callbacks ;
}
sub get_element
{
my ($self,$idx) = @_;
my $elt = $self->{range}[$idx] || return () ;
my ($s_int,$e_int,$value) = @$elt ;
my ($s,$e) = $self->int_to_field($s_int,$e_int) ;
return ($s,$e, $value) ;
( run in 0.387 second using v1.01-cache-2.11-cpan-9b1e4054eb1 )