David E. Wheeler


App::Info::Handler::Print - Print App::Info event messages


  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' );


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:


Prints event messages to STDOUT.


Prints event messages to STDERR.

See the new() constructor below for how to have App::Info::Handler::Print print event messages to different filehandle.




  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:


Constructs a App::Info::Handler::Print object that prints App::Info event messages to STDERR.


Constructs a App::Info::Handler::Print object that prints App::Info event messages to STDOUT.


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.


This method is called by App::Info to print out the message from events.


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.


David E. Wheeler <david@justatheory.com>


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 (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.