in reply to Errors from a simple Package

Thanks heaps wfsp & Eliya!  I've made use of both of your advice, and it's working (just had to change 'qq{...}' to 'qw{...}' and it was all go).

In response to wfsp's query about $sth2, sorry - when preparing the test script for posting, I'd missed the line:

my $sth = "sth$n";
which should have been after the 'print' line in 'run_sql()'.  If '2' is passed as the 2nd argument, $sth becomes 'sth2', so $$sth references $sth2.  But I'm not using that method anymore, thanks to Eliya's suggestion.

One further question about that 'print' line, if I want to have it print to my DEBUG file, which was opened by script1.pl, how can I share that filehandle to the 'run_sql()' sub?  I've tried adding 'DEBUG' with & without a '*' prefix, to the lists of globals, to no avail.  I'd rather not pass the filehandle as an argument to 'run_sub()' for every call.

Thanks.

Replies are listed 'Best First'.
Re^2: Errors from a simple Package
by runrig (Abbot) on Mar 17, 2011 at 01:14 UTC
    Just have your debug logger open up the file for appending, e.g.:
    use POSIX qw(strftime); sub log_msg { open(my $fh, ">>", 'log_file.txt') or die "Err: $!"; printf $fh "[%s] %s\n", strftime("%Y-%m-%d %H:%M:%S", localtime), sh +ift; close $fh; } ... log_msg("Log this message");

      Thanks runrig,

      Good suggestion - I'm trying that now.  I hadn't considered opening the file evertime I want to append it.  Probably not a big overhead since I'll probably only be doing it when I'm trying to debug something.

      But do you know if/how I can share a filehandle (e.g. "DEBUG") between a script and a package?

      Thanks.