Can't call method "My" on an undefined value at G:\PERLCODE\NEWSCR~1.CGI line 23." #### global symbol $LogMsg requires explicit package name". #### #! perl -w use strict; use diagnostics; use Time::localtime; use Config::IniFiles; MAIN:{ my $DirPath = 'A:\\TempIMS_Work\\Listings\\'; my $Logfile = 'DRS_FileModify.log'; my $StdErrfile = 'DRS_FileModify_StdErr.log'; my $Log = $DirPath.$Logfile; my $StdErr = $DirPath . $StdErrfile; # Just to get around warning of "Only Used Once" my $dummystmt = $Log . $StdErr; #Error1 My $MAIN::LogMsg = "\n\n" . &getDateTime() . "\ - Starting Processing\n\n"; # Start the log and StdErrLog &writeLog(); &writeStdErr(); # Ensure the log path exists opendir (Dir, $MAIN::DirPath) or die "\n\nCannot open the path for the processing log: $MAIN::DirPath -- $!\n"; closedir(Dir); # Loop # Process each DRS file -- Call processDRS_File # EndLoop # If error, FTP the errmsg # if FTP failure, write to logs # if success, write o.k. msg to logs #EOJ } # Subroutines and Functions sub getDateTime {; my $tm = localtime(time); my $ampm = "am"; my $tempHour = undef; if ($tm->hour > 12) {$tempHour = $tm->hour - 12; $ampm = "pm"; } else { $tempHour = $tm->hour; }; return (sprintf("%02d/%02d/%02d %02d:%02d %02s", $tm->mon+1, $tm->mday, substr($tm->year + 1900, 2, 2), $tempHour, $tm->min, $ampm) ); }; sub writeLog() { #Error2 # $^W = 0; open LOGFILE, '>>', "$MAIN::Log" or die "ERROR: Cannot open Log file: $!"; # $^W = 1; #Error3 # my $temp = $MAIN::Log; print LOGFILE $MAIN::LogMsg; close LOGFILE; }; sub writeStdErr() { open STDERRFILE, '>>', "$MAIN::StdErr" or die "ERROR: Cannot open StdErr file: $!"; my $temp = $MAIN::StdErr; print STDERRFILE $MAIN::LogMsg; close STDERRFILE; };