Re: RFC 188 (v1) Objects : Private keys and methods
[email protected] (Kenneth Lee) Sat, 02 Sep 2000 13:54:55 +0800
| Newsgroups | perl.perl6.language.objects |
|---|---|
| Message-ID | <[email protected]> |
> Once a hash has been C<private>-ized, the only way to extend its set of
> entries is via another call to C<private>:
>
> sub new {
> my ($class, %self) = @_;
> bless private \%self, $class;
> private $self{seed} = rand; # okay
> $self{seed} = rand; # dies, can't autovivify
> }
>
can we eliminate the private keyword and perform this check on all
blessed array/hash references? direct access to entries is prohibited
outside of the bless()ed package:
package MyAccount;
@ISA = qw(BaseClass);
sub new {
my $class = shift;
bless $class->SUPER::new(@_), $class;
}
sub creditBalance {
self->{balance} += shift; # valid
}
sub debitBalance {
self->{balance} -= shift; # valid
}
package main;
$acc = MyAccount->new;
$acc->{balance} *= 1000; # dies
just IMHO,
kenneth