On Wed, 08 Oct 2008 04:59:19 -0700, John W. Krahn wrote:
> oldyork90 wrote:
>> I am using a module having documentation saying document() is a
>> method.  However, I see it used as
>> 
>> $o->document;
>> 
>> Can you reference a method in this way?  (I takes no args).  I always
>> thought
>> 
>> $o->document() and $o->document meant different things, function
>> verses attribute.
> 
> perldoc perlsub
> 
>      To call subroutines:
> 
>          NAME(LIST);    # & is optional with parentheses.
>          NAME LIST;     # Parentheses optional if predeclared/imported.
>          &NAME(LIST);   # Circumvent prototypes.
>          &NAME;         # Makes current @_ visible to called subroutine.

That isn't particularly relevant to the effect of leaving parentheses off
method calls.  You don't use & with methods (unless you're being
perverse).  Methods ignore prototypes.  And @_ is not passed through when
parens are left out on method calls.  

In fact, I can't find anything in perldoc about parens being optional on
method calls.  All the examples I find leave in even empty ones.  Of
course you can leave them out.  Parenthesis-less calls are documented in
the Camel ("Method Invocation") but not given any special attention. 
I guess that got added in the third edition when there started to be
divergence between the Camel and perldoc.

-- 
Peter Scott
http://www.perlmedic.com/
http://www.perldebugged.com/


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to