sub private { my $caller = caller; croak "Can't call private method from $caller" if $caller ne __PACKAGE__; }