[Israel.pm] package/sub ambiguity
Shmuel Fomberg
semuelf at 012.net.il
Sun Jun 1 12:25:29 PDT 2008
Hi All.
Here is what I had:
a package (object) named Repeater and a sub named Repeater.
when I tried to create a new Repeater, I did:
$r = Repeater->create(...);
and got unexpected results.
After thinking a bit about it, I found out that instead of running the
create method in the Repeater package, it instead run the Repeater sub,
and tried to run create on the result.
meaning, I actually got:
$r = (&Repeater())->create(...);
A way to resolve that was to write:
$r = "Repeater"->create(...);
a probably better way to resolve this is not creating packages and subs
with the same names.
Any advice from the community? I actually liked the sub-package name
duality.
Thanks,
Shmuel.
More information about the Perl
mailing list