| App-Addex documentation | Contained in the App-Addex distribution. |
App::Addex::Output::ToFile - base class for output plugins that write to files
version 0.022
This is a base class for output plugins that will write to files. The "filename" configuration parameter must be given, and must be the name of a file to which the user can write.
my $addex = App::Addex::Output::Subclass->new(\%arg);
This method returns a new outputter. It should be subclassed to provide a
process_entry method.
Valid arguments are:
filename - the file to which to write configuration (required)
$outputter->output($string);
This method appends the given string to the output file, adding a newline.
Ricardo SIGNES, <rjbs@cpan.org>
Please report any bugs or feature requests through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
Copyright 2006-2007 Ricardo Signes, all rights reserved.
This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.
| App-Addex documentation | Contained in the App-Addex distribution. |
#!/usr/bin/perl use strict; use warnings; package App::Addex::Output::ToFile; use App::Addex::Output; BEGIN { our @ISA = 'App::Addex::Output' } use Carp ();
our $VERSION = '0.022';
sub new { my ($class, $arg) = @_; Carp::croak "no filename argument given for $class" unless $arg->{filename}; my $self = $class->SUPER::new; open my $fh, '>', $arg->{filename} or Carp::croak "couldn't open output file $arg->{filename}: $!"; binmode($fh, ':encoding(utf8)'); $self->{fh} = $fh; return $self; }
sub output { my ($self, $line) = @_; print { $self->{fh} } "$line\n" or Carp::croak "couldn't write to output file: $!"; } sub finalize { # We'll just delete this ref and let garbage collection cause closing if # needed. -- rjbs, 2007-11-05 delete $_[0]->{fh}; }
1;