untie *STDOUT; $log = tie(*STDOUT, 'module_name', "logfile_name") Inside the module sub print { my ($class, @data) = @_; print $class->{handle} = @data; . . . #### open STDOUT, ">>$logfile"; open STDERR, ">&STDOUT";