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
)=
@_
;
"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;
$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 *'