I did try what choroba suggested, and it didn't work.
I've put together three small files, for demonstration purposes:

Foo.pm

# Test module foo package Foo; use Bar; #use Bar qw(BarFunc BarSub); BEGIN { require Exporter; # set the version for version checking our $VERSION = 1.00; # Inherit from Exporter to export functions and variables our @ISA = qw(Exporter); # Functions and variables which are exported by default our @EXPORT = qw(FooFunc FooSub); # Functions and variables which can be optionally exported our @EXPORT_OK = qw(); } sub FooFunc { return 'I am the FooFunc !'; } sub FooSub { return 'FooSub reporting in !'; } 1;

Bar.pm

# Test module foo package Bar; use Foo; #use Foo qw(FooFunc FooSub); BEGIN { require Exporter; # set the version for version checking our $VERSION = 1.00; # Inherit from Exporter to export functions and variables our @ISA = qw(Exporter); # Functions and variables which are exported by default our @EXPORT = qw(BarFunc BarSub); # Functions and variables which can be optionally exported our @EXPORT_OK = qw(); } sub BarFunc { return "I, BarFunc, solemnly declare: ".FooFunc()."\n"; } sub BarSub { print "Howdy, Stranger !\n"; print "I'm BarSub, and I'm going to tell you a secret: '".FooSub() +."'\n"; } 1;

perlTest.pl

use Foo; use Bar; print FooFunc()."\n"; BarSub();

Now, when I run the command: perl perlTest.pl, I get the following output:

I am the FooFunc ! Howdy, Stranger ! Undefined subroutine &Bar::FooSub called at Bar.pm line 30.

Is the problem clearer now ?

EDIT:
Also, if I comment out the "use Foo;" and "use Bar;" lines from the modules, and uncomment the longer use lines (the ones with qw(...) on them), I get exactly the same output.


In reply to Re^4: Namespaces and modules by kzwix
in thread Namespaces and modules by kzwix

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.