IO::Pager::Unbuffered(3) User Contributed Perl Documentation IO::Pager::Unbuffered(3)

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

use IO::Pager::Unbuffered;
{
  local $STDOUT = IO::Pager::Unbuffered::open *STDOUT;
  print <<"  HEREDOC" ;
  ...
  A bunch of text later
  HEREDOC
}
{
  # You can also use scalar filehandles...
  my $token = IO::Pager::Unbuffered::open($FH) or warn($!);
  print $FH "No globs or barewords for us thanks!\n" while 1;
}
{
  # ...or an object interface
  my $token = new IO::Pager::Unbuffered;
  $token->print("OO shiny...\n") while 1;
}

IO::Pager subclasses are designed to programmatically decide whether or not to pipe a filehandle's output to a program specified in PAGER; determined and set by IO::Pager at runtime if not yet defined.

See IO::Pager for method details.

All methods are inherited from IO::Pager; except for instantiation.

You probably want to do something with SIGPIPE eg;

eval {
  local $SIG{PIPE} = sub { die };
  local $STDOUT = IO::Pager::open(*STDOUT);
  while (1) {
    # Do something
  }
}
# Do something else

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

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 (C) 2003-2018 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.

2023-07-26 perl v5.38.0