use Tie::Handle (); package Tie::Handle::TimeStamp; our @ISA = 'Tie::StdHandle'; sub wrap { my ($class, $globref) = @_; tie *$globref, $class, ">&=".fileno($globref); } sub WRITE { my $fh = $_[0]; local ($,, $\); print $fh "[" . localtime() . "] " . substr($_[1], 0, $_[2]); } 1; #### use Tie::Handle::TimeStamp(); tie *STDOUT, 'Tie::Handle::TimeStamp', ">&STDOUT"; print("test\n"); # -or- Tie::Handle::TimeStamp->wrap(\*STDOUT); print("test\n");