我仍然试图了解Perl的OOP功能。如果我有一个子程序调用,我对某些事情感到困惑:
My::Package::sub_name($param1,$param2)
这会将“My :: Package”作为第一个参数发送吗?我倾向于拒绝,但我不确定。
答案 0 :(得分:10)
(正如Manni所说)->
operator将调用者移到@_
(其中调用者是受祝福的对象,或者是一个裸名字)。函数名中的::
仅用于命名空间消歧,不会更改@_
。
根据Geo的建议发布答案,虽然我不想成为代表妓女:)
文档中有更多内容:perldoc perlboot,perldoc perltoot。
答案 1 :(得分:8)
你为什么不试试呢?
剧透警报:
不,第一个参数不是包名。
但是,当你这样做时:
My::Package->sub_name( $param1, $param2 )
您将获得包/类名作为第一个参数。