package MyLoggingModule;
use strict;
use warnings;
# ----------
my $logfile;
# ----------
sub init {
my ($logfile_name) = @_;
open($logfile, '>>', $logfile_name)
or die "Couldn't open log file.";
}
sub loggit {
my ($log_msg) = @_;
print {$logfile} $log_msg, "\n";
}
# ----------
1;
####
#!/opt/perl/bin/perl
use strict;
use warnings;
use lib '.';
use MyLoggingModule;
use MyModule;
use MyOtherModule;
# ----------
MyLoggingModule::init('blah.log');
MyLoggingModule::loggit("Doing something in the script...");
MyModule::foo();
MyOtherModule::bar();
MyLoggingModule::loggit("My work here is done.");
####
package MyModule;
use strict;
use warnings;
use lib '.';
use MyLoggingModule;
# ----------
sub foo {
# ...
# write a log message.
MyLoggingModule::loggit("Doing some work in MyModule::foo()");
# ...
}
1;
####
package MyOtherModule;
use strict;
use warnings;
use lib '.';
use MyLoggingModule;
# ----------
sub bar {
# ...
# write a log message.
MyLoggingModule::loggit("Doing some work in MyOtherModule::bar()");
# ...
}
1;