---
name: "App::Info::Handler::Print"
section: "3pm"
platform: "linux"
package: "libapp-info-perl"
version: "0.57-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/App::Info::Handler::Print"
---

# App::Info::Handler::Print(3pm)

Print App::Info event messages

## 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 \<http://github.com/theory/app-info/\>. Feel free to fork and contribute!

Please file bug reports via GitHub Issues \<http://github.com/theory/app-info/issues/\> or by sending mail to bug-App-Info@rt.cpan.org \<mailto: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.
