Mail::Abuse::Reader::Stdin - Reads an abuse report through STDIN


Mail-Abuse documentation Contained in the Mail-Abuse distribution.

Index


Code Index:

NAME

Top

Mail::Abuse::Reader::Stdin - Reads an abuse report through STDIN

SYNOPSIS

Top

  use Mail::Abuse::Report;
  use Mail::Abuse::Reader::Stdin;
  my $r = new Mail::Abuse::Reader::Stdin;
  my $report = new Mail::Abuse::Report (reader => $r);

DESCRIPTION

Top

This class reads in messages from STDIN, creating each corresponding Mail::Abuse::Report object.

A number of configuration keys are used for establishing the operational parameters. These config keys are described below:

stdin separator

A string separator between different messages. It defaults to the string ___END_OF_REPORT___.

stdin debug

If set to a true value, debug messages will be sent through warn().

The following methods are implemented within this class.

read($report)

Populates the text of the given $report using the ->text method. Must return true if succesful or false otherwise.

EXPORT

None by default.

HISTORY

Top

0.01

Original version; created by h2xs 1.2 with options

  -ACOXcfkn
	Mail::Abuse
	-v
	0.01

LICENSE AND WARRANTY

Top

This code and all accompanying software comes with NO WARRANTY. You use it at your own risk.

This code and all accompanying software can be used freely under the same terms as Perl itself.

AUTHOR

Top

Luis E. Muņoz <luismunoz@cpan.org>

SEE ALSO

Top

perl(1).


Mail-Abuse documentation Contained in the Mail-Abuse distribution.
package Mail::Abuse::Reader::Stdin;

require 5.005_62;

use Carp;
use strict;
use warnings;

use base 'Mail::Abuse::Reader';
				# The code below should be in a single line

our $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf " %d."."%03d" x $#r, @r };

sub read
{
    my $self	= shift;
    my $rep	= shift;

    my $config	= $rep->config;
    my $text	= '';

    {
	local $/ = $config->{'stdin delimiter'} || '___END_OF_REPORT___';
	$text = <>;

	unless (defined $text)
	{
	    warn "Stdin failed to read: $!\n" if $config->{'stdin debug'};
	    return;
	}

	$text =~ s/^\r?\n//;	# Remove heading newlines
	$text =~ s!$/$!!;	# Remove trailing delimiter
    }
    
    warn "Stdin read next message\n" if $config->{'stdin debug'};
    $rep->text(\$text);

    return 1;
}

__END__