diff options
Diffstat (limited to 'src/test/perl/SimpleTee.pm')
-rw-r--r-- | src/test/perl/SimpleTee.pm | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/test/perl/SimpleTee.pm b/src/test/perl/SimpleTee.pm new file mode 100644 index 0000000..681a36a --- /dev/null +++ b/src/test/perl/SimpleTee.pm @@ -0,0 +1,35 @@ + +# Copyright (c) 2021, PostgreSQL Global Development Group + +# A simple 'tee' implementation, using perl tie. +# +# Whenever you print to the handle, it gets forwarded to a list of +# handles. The list of output filehandles is passed to the constructor. +# +# This is similar to IO::Tee, but only used for output. Only the PRINT +# method is currently implemented; that's all we need. We don't want to +# depend on IO::Tee just for this. + +package SimpleTee; +use strict; +use warnings; + +sub TIEHANDLE +{ + my $self = shift; + return bless \@_, $self; +} + +sub PRINT +{ + my $self = shift; + my $ok = 1; + for my $fh (@$self) + { + print $fh @_ or $ok = 0; + $fh->flush or $ok = 0; + } + return $ok; +} + +1; |