sub open_logfile { my $filename = shift; # Our filehandle reference object local *FH; # Attempt to open the file if(open(FH, "> " . $filename)) { # Opened the file print $FH_STATUS "Opened logfile: " . $filename . "\n"; select(FH); $| = 1; # Unbuffer select(STDOUT); # Restore default print to STDOUT return *FH; # Return the new fh reference } else { # Couldn't open the file... print $FH_ERROR "Problem opening logfile: \n"; print $FH_ERROR $filename . ":\n"; print $FH_ERROR $! . "\n"; print $FH_ERROR "Redirecting logging to Error log\n\n"; sleep 5; return $FH_ERROR; } }