use IO::Tee; open (my $fh, ">","/cache/some/file.html") or errout(); # Note, don't use || here my $tee = IO::Tee->new(\*STDOUT,$fh); print $tee "content"; $tee->flush(); close $fh or errout();