sub start_logging { my $socket = shift; # send_data uses syswrite() send_data($socket, "__LOG_START__"); $Saveout = IO::File->new(">&STDOUT"); open(*STDOUT, '>&', $socket); } sub stop_logging { my $socket = shift; open (*STDOUT, '>&', $Saveout); print $socket "__LOG_STOP__\n"; $send_data($socket, "Random Message"); #Hangs!! }