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