in reply to How called was &I?
Well, method $obj $arg; would be an error. Update: Actually, that's not an error at all. rir++ for the catch. I updated the next paragraph to reflect this.
You can't distinguish between
because they are simply all instance methods. The last two listed there act just like the first one.method( $obj, $arg); $obj->method( $arg); method $obj $arg;
Similarly, you can't distinguish between
because they are all class methods. The first two act just like the last one. Update: Poor assumptions made there. See rir's reply and mine to him for more insight. Otherwise, replace those examples with:"Classname"->method( $arg); method "Classname" $arg; method( "Classname", $arg);
Class->method($arg); method Class $arg; Class::method("Class", $arg);
You can determine if the method was called as a class method or an instance method by checking the refness of the first argument but you can't determine the exact syntax.
Update: Sorry for the mess. As I understand the question, you want to know if, for example, a method can know whether it was invoked via indirect object notation, a normal sub call, or with the arrow operator. My answer: a very long "no."-sauoq "My two cents aren't worth a dime.";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: How called was &I?
by rir (Vicar) on Sep 16, 2002 at 00:58 UTC | |
by sauoq (Abbot) on Sep 16, 2002 at 02:22 UTC |