use strict; use warnings; use vars qw( $LOG_FILE_NAME ); BEGIN { if (@ARGV && $ARGV[0] =~ /^-?-log(?:=(.*))?$/) { *LOGGING = sub () { 1 }; $LOG_FILE_NAME = $1; } else { *LOGGING = sub () { 0 }; } } if (LOGGING) { if (defined($LOG_FILE_NAME)) { open(LOG_FH, '>>', $LOG_FILE_NAME) or die("Can't open log file: $!\n"); } else { open(LOG_FH, '>&STDERR') or die("Can't dup STDERR: $!\n"); } } print LOG_FH ('Opening log file at '.localtime().".$/") if LOGGING;