/usr/local/CPAN/Mail-Karmasphere-Client/Mail/Karmasphere/Parser/Simple/List.pm
package Mail::Karmasphere::Parser::Simple::List;
use strict;
use warnings;
use base 'Mail::Karmasphere::Parser::Base';
sub new {
my $class = shift;
# print STDERR "new: \$class = $class\n";
# print STDERR "new: \$class->_streams() = @{[$class->_streams()]}\n";;
my $self = ($#_ == 0) ? { %{ (shift) } } : { @_ };
unless (exists $self->{Streams}) {
$self->{Type} = $class->_type() unless $self->{Type};
$self->{Streams} = [ $class->_streams() ];
}
$self = $class->SUPER::new($self);
$self->{Value} = 1000 unless exists $self->{Value};
return $self;
}
sub _parse {
my $self = shift;
for (;;) {
my $line = $self->fh->getline;
return undef unless $line;
next if $line =~ /^#/;
next unless $line =~ /\S/;
chomp($line); $line =~ s/\r$//g; # strip trailing CRLF
$line =~ s/[\s;].+$//;
return new Mail::Karmasphere::Parser::Record(
s => 0,
i => $line,
v => $self->{Value},
);
}
}
sub _type { "Parser::Simple::* subclass must define _type()" }
1;