NAME
IO::Tee - Multiplex output to multiple output handles
SYNOPSIS
use IO::Tee;
$tee = IO::Tee->new($handle1, $handle2);
print $tee "foo", "bar";
DESCRIPTION
The IO::Tee
constructor, given a list of output handles, returns a tied handle that can be written to but not read from. When written to (using print or printf), it multiplexes the output to the list of handles originally passed to the constructor. As a shortcut, you can also directly pass a string or an array reference to the constructor, in which case IO::File::new
is called for you with the specified argument or arguments.
The IO::Tee
class supports certain IO::Handle
and IO::File
methods related to output. In particular, the following methods will iterate themselves over all handles associated with the IO::Tee
object, and return TRUE indicating success if and only if all associated handles returned TRUE indicating success:
- close
- truncate
- write
- syswrite
- format_write
- formline
- fcntl
- ioctl
- flush
- clearerr
- seek
Additionally, the following methods can be used to set (but not retrieve) the current values of output-related state variables on all associated handles:
- autoflush
- output_field_separator
- output_record_separator
- format_page_number
- format_lines_per_page
- format_lines_left
- format_name
- format_top_name
- format_line_break_characters
- format_formfeed
EXAMPLE
use IO::Tee;
use IO::File;
my $tee = new IO::Tee(\*STDOUT,
new IO::File(">tt1.out"), ">tt2.out");
print join(' ', $tee->handles), "\n";
$tee->output_field_separator("//");
for (1..10) { print $tee $_, "\n" }
for (1..10) { $tee->print($_, "\n") }
$tee->flush;
AUTHOR
Chung-chieh Shan, ken@digitas.harvard.edu
COPYRIGHT
Copyright (c) 1998 Chung-chieh Shan. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.