私は、Damian Conway の「インサイドアウト」オブジェクトを使用しています。彼の素晴らしい本Perl Best Practicesで説明されているように、クライアントでセキュリティ システムへのオブジェクト指向インターフェイスを構築しています。モジュール内で、通常は「_some_method」として指定する内部ヘルパー メソッドを使用する必要があります。ただし、パッケージ名を介して直接呼び出すことができるため、カプセル化が壊れているようです。これらのメソッドを本当にプライベートにする方法はありますか? 例として、
use SOD::MyOOInterface;
my $instance1 = SOD::MyOOInterface->new();
$instance1->_some_method; #this produces an error:
SOD::MyOOInterface::_some_method; # this results in a
# successful method call
明らかに、_some_method の直接呼び出しを成功させたくありません。これを保証する方法はありますか?