In addition to grep's comments about references, I happened to notice this:

I haven't declared them as my or local in the main script ...

What is probably going on is that you are expecting these variables to be global, but you probably haven't taken into account the namespace. This implies to me that you are likely not using strict. I can't prove that (you didn't post your code), but it has been my experience that someone who is unfamiliar with package declarations or who (ab)uses globals is unlikely to be familiar with strict. Please read 'use strict' is not Perl. You may not like what you read, but it will save you grief in the long run. In the meantime, you can follow grep's advice. However, I would make a tiny change to his syntax:

sub foo { my ($hash1,$hash2) = @_; # cleaner dereference foreach (keys %$hash1) { print "$_ $hash1->{$_}\n"; } # preferred, if you need to access both while ( my ($key, $value) = each %$hash2 ) { print "$key $value\n"; } }

The first loop uses the arrow syntax to dereference (cleaner, and easier to read, in my opinion) and the second loop uses the each iterator to get at the values (another "clean" method).

Cheers,
Ovid

Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.


In reply to (Ovid) Re: Pass data to a Module by Ovid
in thread Pass data to a Module by Anonymous Monk

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.