From: Rob Dixon <[EMAIL PROTECTED]>
> It is common practice in most languages to pass an additional implicit 
> parameter
> to method calls. Class methods like BOA::Logger2->new will have the class name
> passed as the first parameter, whereas object methods like $logger->level will
> have the object pass the object in the same place. That is really the only
> difference between calling
> 
>   BOA::Logger2->new('logs/boa.log')
> 
> and
> 
>   BOA::Logger2:new('logs/boa.log')
> 
> The first is a method call and so will have the class name passed as well as 
> the
> parameter you provide explicitly.

In this particular case yes, but there is one more important 
difference. In the first case the new() subroutine is looked up first 
in the BOA::Logger2 package, then in the "parent" package (specified 
via @BOA::Logger2::ISA or "use base ...."), its parent package etc.

It's a method so the inheritance rules apply.

In the second it's only looked up in the BOA::Logger2 package and if 
not found there perl emits an error message.

Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


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


Reply via email to