wipeLog(); logMessage("testing"); logMessage( Carp::cluck("Cluck at ")); #### testing 1 #### #testcarp.pl # custom module use TestCarp('test_carp'); test_carp(); #### #testcarp.pm package TestCarp; use strict; use Logger('logMessage','wipeLog'); use base 'Exporter'; our @EXPORT_OK = ('test_carp'); sub test_carp { wipeLog(); logMessage("testing"); logMessage( Carp::cluck("Cluck at ")); } 1; #### #logger.pm use strict; package Logger; use base 'Exporter'; our @EXPORT_OK = ('logMessage','wipeLog'); sub logMessage { my $message = shift; print $message; # maybe could turn this on and off with command line option. do later? my $logFileName = "log.txt"; open F, ">> $logFileName" or die "Cannot open log file: $logFileName"; print F $message,"\n"; close F; } sub wipeLog { my $logFileName = "log.txt"; open F, "> $logFileName" or die "Cannot open log file: $logFileName"; close F; } 1;