| Term-UI documentation | Contained in the Term-UI distribution. |
Term::UI::History
use Term::UI::History qw[history];
history("Some message");
### retrieve the history in printable form
$hist = Term::UI::History->history_as_string;
### redirect output
local $Term::UI::History::HISTORY_FH = \*STDERR;
This module provides the history function for Term::UI,
printing and saving all the UI interaction.
Refer to the Term::UI manpage for details on usage from
Term::UI.
This module subclasses Log::Message::Simple. Refer to its
manpage for additional functionality available via this package.
Records a message on the stack, and prints it to STDOUT
(or actually $HISTORY_FH, see the GLOBAL VARIABLES section
below), if the VERBOSE option is true.
The VERBOSE option defaults to true.
This is the filehandle all the messages sent to history() are being
printed. This defaults to *STDOUT.
Log::Message::Simple, Term::UI
This module by Jos Boumans <kane@cpan.org>.
This module is copyright (c) 2005 Jos Boumans <kane@cpan.org>. All rights reserved.
This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.
| Term-UI documentation | Contained in the Term-UI distribution. |
package Term::UI::History; use strict; use base 'Exporter'; use base 'Log::Message::Simple';
BEGIN { use Log::Message private => 0; use vars qw[ @EXPORT $HISTORY_FH ]; @EXPORT = qw[ history ]; my $log = new Log::Message; $HISTORY_FH = \*STDOUT; for my $func ( @EXPORT ) { no strict 'refs'; *$func = sub { my $msg = shift; $log->store( message => $msg, tag => uc $func, level => $func, extra => [@_] ); }; } sub history_as_string { my $class = shift; return join $/, map { $_->message } __PACKAGE__->stack; } } { package Log::Message::Handlers; sub history { my $self = shift; my $verbose = shift; $verbose = 1 unless defined $verbose; # default to true ### so you don't want us to print the msg? ### return if defined $verbose && $verbose == 0; local $| = 1; my $old_fh = select $Term::UI::History::HISTORY_FH; print $self->message . "\n"; select $old_fh; return; } }
1; # Local variables: # c-indentation-style: bsd # c-basic-offset: 4 # indent-tabs-mode: nil # End: # vim: expandtab shiftwidth=4: