30 |
@ISA = qw(Libconf); |
@ISA = qw(Libconf); |
31 |
|
|
32 |
sub new { |
sub new { |
33 |
my ($pkg, $filename) = @_; |
my ($class, $filename) = @_; |
34 |
my $libconf = $pkg->Libconf::new($filename, 'passwd', ''); |
my $libconf = Libconf::new('Libconf', $filename, 'passwd', ''); |
35 |
tie my %wrapper, 'Libconf::Glueconf::Passwd::Wrapper', $libconf; |
tie my %wrapper, 'Libconf::Glueconf::Passwd::Wrapper', $libconf; |
36 |
bless \%wrapper, $pkg; |
bless \%wrapper, $class; |
37 |
|
} |
38 |
|
|
39 |
|
sub readConf { |
40 |
|
my ($obj) = @_; |
41 |
|
$obj->{libconf}->readConf(); |
42 |
|
} |
43 |
|
|
44 |
|
sub writeConf { |
45 |
|
my ($obj) = @_; |
46 |
|
$obj->{libconf}->writeConf(); |
47 |
} |
} |
48 |
|
|
49 |
package Libconf::Glueconf::Passwd::Wrapper; |
package Libconf::Glueconf::Passwd::Wrapper; |
110 |
|
|
111 |
sub FETCH { |
sub FETCH { |
112 |
my ($obj, $key) = @_; |
my ($obj, $key) = @_; |
113 |
debug "key : $key\n"; |
debug "key : $key"; |
114 |
$key eq 'libconf' and return $obj->{libconf}; |
$key eq 'libconf' and return $obj->{libconf}; |
115 |
|
substr($key, 0, 1) eq '_' and return $obj->{$key}; |
116 |
my @pos = $obj->{libconf}->findAtomPos({ type => 'KEY_VALUES', key => $key }); |
my @pos = $obj->{libconf}->findAtomPos({ type => 'KEY_VALUES', key => $key }); |
117 |
|
@pos == 0 and return undef; |
118 |
$obj->{libconf}->getAtom($pos[-1])->{values}; |
$obj->{libconf}->getAtom($pos[-1])->{values}; |
119 |
} |
} |
120 |
|
|