So I am updating this program and all was going well until I tried to make main plus all libraries write to the same log file for debugging. It used to work when everything ran sequential but i'm threading it now to add flexibility. So what i have tried to do is open the log file in MAIN then pass the handle to the libraries. To ensure that two write dont occur at the same time i'm also passing a semaphore. If you have a better way or can make this work please let me know. I think one problem is the libraries are loaded before the variables are made available but putting them in BEGIN breaks stuff.

MAIN:
use Thread::Semaphore; my $writelog = Thread::Semaphore->new(); #sequential log writing use diagConfig; #$sourcepath, %files, and helper functions open my $LOGFH ,">", $files{log}{file}; #disable write buffer my $stdout = select($LOGFH); $| = 1; select($stdout); use License (\$LOGFH, \$writelog);

LIB:
package License; use strict; no strict "refs"; my $LOGFH = undef; my $writelog = undef; use diagConfig; #$sourcepath, %files, trimwhitespace, cleanupWincuri, +$WINCURI, $PLINK, $CLI sub import { shift; $LOGFH = ${$_[0]}; $writelog = ${$_[1]}; if (defined $writelog) { $writelog->down(); $writelog->up(); } else { print "semaphore is not defined\n"; } if (defined $LOGFH) { print $LOGFH "Initiator loaded\n"; } else { print "logfile is not defined\n"; } }

In reply to many files one log file by glenn

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.