print Bravo->SayBye(); ### works as expected print Bravo->GreetByName('Billy'); ### D'OH! 'Hello Bravo'
The syntax Package->subname(@arguments) calls a class method, with inheritance if needed. The first argument supplied to the sub subname will be the name of the Package, in your case, @_ = ("Bravo","Billy"). Likewise, for methodcalls on objects, the object is passed as the first argument. Some languagages prefer to do this behind your back (i.e. Java & C++'s this object), but Perl is very explicit about all of this.
In your code, you don't need that first argument, so just ignore it, however, if you want to bless objects into the right class, or pass the package name on, you do need it.
See also perltoot perlobj,perlobj, perlboot, perltooc, and perlbot.
In reply to Re: reworked code but still doesnt work ...
by Joost
in thread ISA with packages ... A barebones minimal example
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |