YATT
view release on metacpan or search on metacpan
scripts/yatt.lib/YATT/XHF.pm view on Meta::CPAN
sub configure_string {
(my MY $self, my ($string)) = @_;
open $self->{cf_FH}, '<', \$string
or croak "Can't create string stream: $!";
$self;
}
sub read_as_hashlist {
my MY $reader = shift;
local $/ = "";
my $fh = $$reader{cf_FH};
my @result;
while (defined (my $paragraph = <$fh>)) {
@{$$reader{cf_tokens}} = $reader->tokenize($paragraph)
or next;
push @result, $reader->organize_as_hash($reader->{cf_tokens});
}
wantarray ? @result : \@result;
}
sub read_as_hash {
shift->read_as(hash => @_);
}
sub read_as {
(my MY $reader, my ($type)) = @_;
my $sub = $reader->can("organize_as_$type")
or croak "Unknown read_as type: $type";
local $/ = "";
my $fh = $$reader{cf_FH};
until ($$reader{cf_tokens} && @{$$reader{cf_tokens}}) {
defined (my $paragraph = <$fh>) or last;
@{$$reader{cf_tokens}} = $reader->tokenize($paragraph)
}
return unless $$reader{cf_tokens} && @{$$reader{cf_tokens}};
$sub->($reader, $reader->{cf_tokens});
}
sub organize_as_pairlist {
web/cgi-bin/yatt.lib/YATT/XHF.pm view on Meta::CPAN
sub configure_string {
(my MY $self, my ($string)) = @_;
open $self->{cf_FH}, '<', \$string
or croak "Can't create string stream: $!";
$self;
}
sub read_as_hashlist {
my MY $reader = shift;
local $/ = "";
my $fh = $$reader{cf_FH};
my @result;
while (defined (my $paragraph = <$fh>)) {
@{$$reader{cf_tokens}} = $reader->tokenize($paragraph)
or next;
push @result, $reader->organize_as_hash($reader->{cf_tokens});
}
wantarray ? @result : \@result;
}
sub read_as_hash {
shift->read_as(hash => @_);
}
sub read_as {
(my MY $reader, my ($type)) = @_;
my $sub = $reader->can("organize_as_$type")
or croak "Unknown read_as type: $type";
local $/ = "";
my $fh = $$reader{cf_FH};
until ($$reader{cf_tokens} && @{$$reader{cf_tokens}}) {
defined (my $paragraph = <$fh>) or last;
@{$$reader{cf_tokens}} = $reader->tokenize($paragraph)
}
return unless $$reader{cf_tokens} && @{$$reader{cf_tokens}};
$sub->($reader, $reader->{cf_tokens});
}
sub organize_as_pairlist {
( run in 0.978 second using v1.01-cache-2.11-cpan-49f99fa48dc )