hi I am trying to use a subroutine from another perl file.
but even though I "include" it, it is still not
visible? I was forced to make the other perl file as a
package, but it sometimes works sometimes it fails because
it does not see that subroutine again. why is that? I want to use getClientListFromReg, printpair, createPair in client_reg.pl

ERROR MSG: C:\tool\SCSEvent>perl testclientreg.pl
Undefined subroutine &main::getClientListFromReg called at testclientreg.pl line
17, <IN> line 18.
code for client_reg.pl
#package client_reg; use vpcommon; #require Exporter; #@ISA = qw(Exporter); # Items to export into caller's namespace by default. #@EXPORT = qw(getClientListFromReg); use Win32::Registry; $DEBUG = 0; do ('sub_ErrorLog.pl'); %regKey_array=(); #global ################################################################### # sub createPair # Desc: pair up a key with a value and put them into an assiciative ar +ray # # ###################################################################### +# sub createPair{ my($key, $value) = @_ ; $regKey_array{$key} = $value; }; # end sub createPair ################################################################### # sub printPair # Desc: print the pair of a key with a value from an associative array # # ###################################################################### +# sub printPair{ #my($key, $value) = @_ ; while (($key, $value) = each %regKey_array) { print("$key, $value\n"); }; }; # end sub printPair ###################################################################### # # sub getClientListFromReg() # DEsc: return a list of clients name in string from regkey # defined in CONST_REG_KEY_CLIENTKEY in file LogUpdater_conf.con +f # default return is "None" # # ###################################################################### +# sub getClientListFromReg { local ($targetRegKey)=@_; local(@clientList,%clientNamesHash,$reg_handle); my $handle; my $SubKeys; my $key; # open regkey hive $handle = $::HKEY_LOCAL_MACHINE->Open($targetRegKey, $SubKeys); die("Unable to open $targetRegKey") unless defined($SubKeys); # get a list of sub reg keys under hive, put them into an array $SubKeys->GetKeys(\@clientList); my $idx =0; my $position = 0; local ($s); # loop through each array element, chop the Guid out from client k +ey # put the result into an associative array with key index foreach $key (@clientList) { $position = index($key,'_::'); $s = substr($key,0,$position); createPair($idx,$s); $idx = $idx+1; } if ($DEBUG) { printPair}; # close reg key hive $::HKEY_LOCAL_MACHINE->Close(); } # end getClientListFromReg
callee's code:
do (client_reg.pl); $debug =0; ##### read in config file ############################## $SvcConfFile1 = 'LogUpdater_conf.conf'; open(IN,"<:utf8", "$SvcConfFile1") || print "Unable to open $SvcConfFi +le1"."\n"; while (<IN>) { chop($_); eval $_; } ################################################ # populate the regkeyarray getClientListFromReg($SAVCLIENTKEY); print %regKey_array;

In reply to why this funciton is invisible? by edwardt_tril

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.