"Sub"package oder Subroutine
am 23.11.2006 15:21:16 von Paul HinkMoin!
Wie ist zu erklären, dass folgender Code:
---schnipp--
#!/usr/bin/perl
print "A: ";
Foo->A();
print "B: ";
Foo->B();
package Foo;
sub A{ Foo::Bar->Blech(); }
sub Bar{ print "{Foo}::Bar\n"; }
sub B{ Foo::Bar->Blech(); }
package Foo::Bar;
sub Blech{ print "{Foo::Bar}::Blech\n"; }
---schnapp---
....die folgende Ausgabe produziert?
| A: {Foo::Bar}::Blech
| B: {Foo}::Bar
| Can't call method "Blech" without a package or object reference at ./subpackage.pl line 13.
(Perl "v5.8.4 built for i386-linux-thread-multi" unter Debian sarge)
Offenbar ist die Interpretation von "Foo::Bar->Blech();" davon
abhängig, ob es im Sourcecode vor oder nach der Subroutine "Bar"
auftaucht.
Kann ich Perls Interpretation dieses Funktionsaufrufs (insbesondere im
zweiten Fall) irgendwie beeinflussen ohne die Reihenfolge der
Subroutines zu ändern?
Paul