On Thu, 3 Aug 2017 20:44:45 +0200
hw <[email protected]> wrote:
>
> Hi,
>
> suppose I have a class FOO and a class BAR. The parent of BAR is FOO.
>
> I would like FOO to /use/ BAR because BAR has some methods needed by
> FOO. BAR is /decended/ from FOO because FOO has many methods needed
> by BAR.
>
> Is this possible, or does it lead to some endless recursion when
> compiling?
>
Files and packages are two different things in Perl. `use Foo;` mean
load the module from the file Foo.pm and execute it. Perl keeps a list
of all the modules (files) it loads so that no it never loads a module
twice.
`package Foo;` means what follows is in the name-space Foo. Their
fully-qualified names would start with `Foo::`
The convention is that there should be only one package per
module-file. But Perl doesn't care. You can mixed packages and modules
any which way you can imagine. You can have a package spread out in
several modules and you can have a module contains many packages, or
any combination of the two. But to keep you code understandable, please
keep to one and only one package per module.
The way I would do it would be to separate out what is common in both
Foo and Bar and put them in a separate module. Then Foo and Bar can
`use` it as their parent.
--
Don't stop where the ink does.
Shawn H Corey
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/