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>


Reply via email to