The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

IO::Pager::Unbuffered - Pipe output to a pager if destination is to a TTY

SYNOPSIS

  use IO::Pager::Unbuffered;
  {
    #local $STDOUT =     IO::Pager::Unbuffered::open *STDOUT;
    local  $STDOUT = new IO::Pager::Unbuffered       *STDOUT;
    print <<"  HEREDOC" ;
    ...
    A bunch of text later
    HEREDOC
  }

DESCRIPTION

IO::Pager is designed to programmatically decide whether or not to point the STDOUT file handle into a pipe to program specified in the PAGER environment variable or one of a standard list of pagers.

new( [FILEHANDLE] )

Instantiate a new IO::Pager to paginate FILEHANDLE if necessary. Assign the return value to a scoped variable.

FILEHANDLE

Defaults to currently select()-ed FILEHANDLE.

open( [FILEHANDLE] )

An alias for new.

close( FILEHANDLE )

Explicitly close the filehandle, if a pager was deemed necessary this will kill it. Normally you would just wait for the user to exit the pager and the object to pass out of scope.

This does not default to the current filehandle.

CAVEATS

You probably want to do something with SIGPIPE eg;

  eval {
    $SIG{PIPE} = sub { die };
    local $STDOUT = IO::Pager::open(*STDOUT);

    while (1) {
      # Do something
    }
  }

  # Do something else

SEE ALSO

IO::Pager, IO::Pager::Buffered, IO::Pager::Page,

AUTHOR

Jerrad Pierce <jpierce@cpan.org>

Florent Angly <florent.angly@gmail.com>

This module was inspired by Monte Mitzelfelt's IO::Page 0.02

Significant proddage provided by Tye McQueen.

COPYRIGHT AND LICENSE

Copyright (C) 2003-2012 Jerrad Pierce

  • Thou shalt not claim ownership of unmodified materials.

  • Thou shalt not claim whole ownership of modified materials.

  • Thou shalt grant the indemnity of the provider of materials.

  • Thou shalt use and dispense freely without other restrictions.

Or, if you prefer:

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.0 or, at your option, any later version of Perl 5 you may have available.