logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

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.

Caveats

       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

Description

       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.

Methods

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

Name

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

See Also

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

Synopsis

         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;
         }

See Also