The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

Data::Range::Compare::Stream::Iterator::Validate - Iterator Result Validation

SYNOPSIS

my $list=[
# Invalid range 1
Data::Range::Compare::Stream->new(),
# Invalid range 2
Data::Range::Compare::Stream->new(0),
# Invalid range 3
Data::Range::Compare::Stream->new(undef,0),
# Invalid range 4
Data::Range::Compare::Stream->new(1,0),
# Valid range 1
Data::Range::Compare::Stream->new(0,0),
# Valid range 2
Data::Range::Compare::Stream->new(1,2),
# Invalid range 5
Data::Range::Compare::Stream->new(2,1),
];
sub bad_range {
my ($range)=@_;
print "Invalid range found\n";
}
my $it=new Data::Range::Compare::Stream::Iterator::Array(range_list=>$list,sorted=>1);
my $valid=new Data::Range::Compare::Stream::Iterator::Validate($it,on_bad_range=>\&bad_range);
while($valid->has_next) {
my $result=$valid->get_next;
print $result,"\n";
}

DESCRIPTION

This class validates result objects returned from iterators that implement Data::Range::Compare::Stream::Iterator::Base.

How ranges are defined as not valid.

Data::Range::Compare::Stream and all classes that implement have a instance->boolean interface. When the boolean interface returns false the range is considered invalid.

OO Methods

  • my $valid=new Data::Range::Compare::Stream::Iterator::Validate($iterator);

  • my $valid=new Data::Range::Compare::Stream::Iterator::Validate($iterator,key=>value);

    Required Arguments:

    $iterator
    # object extends or implements L<Data::Range::Compare::Stream::Iterator::Base>

    Optional Arguments

    on_bad_range=>undef|code_ref
    # Default: undef, Code ref called with the the invalid range found as an argument.
  • while($iterator->has_next) { ... }

    Returns true if there is a valid range.

  • my $range=$iterator->get_next;

    Returns the next valid range.

  • $self->on_bad_range($range);

    This function is called internally when a range is found to be invalid. This function does nothing by default unless on_bad_range=>code_ref has been defined. When on_bad_range is defined the code ref is called with the range as the only argument.

SEE ALSO

Data::Range::Compare::Stream::Cookbook

AUTHOR

Michael Shipper

Source-Forge Project

As of version 0.001 the Project has been moved to Source-Forge.net

Data Range Compare https://sourceforge.net/projects/data-range-comp/

COPYRIGHT

Copyright 2011 Michael Shipper. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 84:

Expected '=item *'