use strict; package BOB; use Carp; use base 'IO::File'; use overload(); sub _pRiVaTish { my $self = shift; my ($package, $filename, $line) = caller; carp "YOU MUST NOT CALL THIS METHOD YOU, YOU AIN'T BOB!!!" unless $filename eq __FILE__ and 0 == index overload::StrVal($self), __PACKAGE__,0; return 'beep'; } package BIB; use vars '@ISA'; @ISA='BOB'; 1; package main; my $bib = BIB->new(); $bib->_pRiVaTish(); __END__ YOU MUST NOT CALL THIS METHOD YOU, YOU AIN'T BOB!!! at private.methods.pl line 28