in reply to How can I add private data/methods in parent class?
I tried to find out on Net and found out there are modules present public, private, but if I want to implement without using those modules, how can I implement this feature?Why don't you look inside those modules to see how they work?
This is not a very easy problem to solve in perl. Here's one possible approach (though not foolproof):
And just in case(: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
|
|---|