NAME
App::Info::Handler::Print - Print App::Info event messages
SYNOPSIS
use App::Info::Category::FooApp;
use App::Info::Handler::Print;
my $stdout = App::Info::Handler::Print->new( fh => 'stdout' );
my $app = App::Info::Category::FooApp->new( on_info => $stdout );
# Or...
my $app = App::Info::Category::FooApp->new( on_error => 'stderr' );
DESCRIPTION
App::Info::Handler::Print objects handle App::Info events by printing their messages to a filehandle. This means that if you want event messages to print to a file or to a system filehandle, you can easily do it with this class. You'll find, however, that App::Info::Handler::Print is most effective for info and error events; unknown and prompt events are better handled by event handlers that know how to prompt users for data. See App::Info::Handler::Prompt for an example of that functionality.
Upon loading, App::Info::Handler::Print registers itself with App::Info::Handler, setting up a couple of strings that can be passed to an App::Info concrete subclass constructor. These strings are shortcuts that tell App::Info how to create the proper App::Info::Handler::Print object for handling events. The registered strings are:
- stdout
-
Prints event messages to
STDOUT
. - stderr
-
Prints event messages to
STDERR
.
See the new()
constructor below for how to have App::Info::Handler::Print print event messages to different filehandle.
INTERFACE
Constructor
new
my $stderr_handler = App::Info::Handler::Print->new;
$stderr_handler = App::Info::Handler::Print->new( fh => 'stderr' );
my $stdout_handler = App::Info::Handler::Print->new( fh => 'stdout' );
my $fh = FileHandle->new($file);
my $fh_handler = App::Info::Handler::Print->new( fh => $fh );
Constructs a new App::Info::Handler::Print and returns it. It can take a single parameterized argument, fh
, which can be any one of the following values:
- stderr
-
Constructs a App::Info::Handler::Print object that prints App::Info event messages to
STDERR
. - stdout
-
Constructs a App::Info::Handler::Print object that prints App::Info event messages to
STDOUT
. - FileHandle
- GLOB
-
Pass in a reference and App::Info::Handler::Print will assume that it's a filehandle reference that it can print to. Note that passing in something that can't be printed to will trigger an exception when App::Info::Handler::Print tries to print to it.
If the fh
parameter is not passed, new()
will default to creating an App::Info::Handler::Print object that prints App::Info event messages to STDOUT
.
handler
This method is called by App::Info to print out the message from events.
SUPPORT
This module is stored in an open GitHub repository. Feel free to fork and contribute!
Please file bug reports via GitHub Issues or by sending mail to bug-App-Info@rt.cpan.org.
AUTHOR
David E. Wheeler <david@justatheory.com>
SEE ALSO
App::Info documents the event handling interface.
App::Info::Handler::Carp handles events by passing their messages Carp module functions.
App::Info::Handler::Prompt offers event handling more appropriate for unknown and confirm events.
App::Info::Handler describes how to implement custom App::Info event handlers.
COPYRIGHT AND LICENSE
Copyright (c) 2002-2011, David E. Wheeler. Some Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.