メソッド呼び出し時の::と->の違い

Package::Hogeというパッケージがあって、そこで定義されているhugaメソッドがあるとします。
これを呼び出すときに、

Package::Hoge::huga(@args) 

と書くのと、

Pakage::Hoge->huga(@args) 

と書くのでは動作が異なります。
同じだと思ってました。

なぜなら、

Pakage::Hoge->huga  

は、実は

Package::Hoge::huga(Package::Hoge, @args) 

を意味しているからです。

アロー演算子(->)を使った場合、メソッドの引数リストにクラス名が渡され、
クラスの継承関係を辿っていくことができます。これにより、
参照urlのように、パールのようなものでネコにニャーと泣かせることができます。
しばらく動物が嫌いになりそうです。

(続・初めてのPerl 11章)
perlboot - Perl オブジェクト指向導入編 【perldoc.jp】 http://perldoc.jp/docs/perl/5.10.0/perlboot.pod#Introducing32the32method32invocation32arrow