Graeme McLaren <mailto:[EMAIL PROTECTED]> wrote:
[snip useful code]
: $self->_init();
Pass the site to _init():
$self->_init( $arg{site} );
: }
:
: sub _init{
: my $self = shift;
my $site = shift;
die $site;
: die %{$self};
: }
That was the short answer. The long answer might add
"site" to the class. Here we make site available to the
caller as a read-only method.
package Conf;
use Carp 'croak';
sub new {
my( $caller, %arg ) = @_;
my $conv = {
x => '/usr/local/apache/htdocs/x',
y => '/usr/local/apache/htdocs/y',
z => '/usr/local/apache/htdocs/z'
};
croak
q(new() requires 'site' parameter: ) .
q(Conf->new( site => 'x' ))
unless exists $conv->{ $arg{site} };
my $class = ref( $caller ) || $caller;
my $self = bless {
site => $arg{site},
_doc_root => $conv->{ $arg{site} },
}, $class;
$self->_init();
return $self;
}
sub _init {
my $self = shift;
die $self->site();
}
sub site {
my $self = shift;
return $self->{site};
}
1;
HTH,
Charles K. Clarkson
--
Mobile Homes Specialist
254 968-8328
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>