in reply to Re: how to code a class and use it with hash of hash as data member?
in thread how to code a class and use it with hash of hash as data member?
That's close, but you can only ever have one "object" at a time, as you're using package-level data. That means you have to access the data in the object, not in the server map. You also don't need the prototypes on methods, as they're useless here.
package myObject; use strict; use warnings; use vars '$VERSION'; $VERSION = 1.00; my %serverMap = ( default => { ipaddress => "127.0.0.1", dsn => "default", userid => "sa", password => "password", instance => "instance" } ); # use the arguments in $serverMap{ default } as attribute defaults sub new { my $class = shift; my %self = ( %{ $serverMap{ default } }, @_ ); bless \%self, $class; } sub printMe { my $self = shift; print "------ Available Servers ------\n"; for my $server ( keys %$self ) { print "\nServer: ", $server, "\n"; for my $cr ( keys %{ $self->{$server} } ) { print "\t$cr => $self->{$server}{$cr}\n"; } } } sub addServer { my ( $self, $srvName, $hrCreds ) = @_; $self->{$srvName} = $hrCreds; } sub removeServerMap { my $self = shift; %$self = (); } sub deleteServer { my ( $self, $srvName ) = @_; delete $self->{$srvName}; } 1;
Update: Fixed a typo in the code.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: how to code a class and use it with hash of hash as data member?
by edwardt_tril (Sexton) on Mar 21, 2006 at 08:09 UTC | |
|
Re^3: how to code a class and use it with hash of hash as data member?
by edwardt_tril (Sexton) on Mar 17, 2006 at 15:57 UTC | |
by chromatic (Archbishop) on Mar 17, 2006 at 19:50 UTC | |
by edwardt_tril (Sexton) on Mar 17, 2006 at 20:17 UTC |