package OurApp;
use strict;
use base ( 'OurApp::Base' );
1;
####
package OurApp::Base;
use strict;
use base ( 'Class::Accessor' );
use Config::Auto;
sub new {
my ($class,%args) = @_;
my $self = {};
bless $self , $class;
if ($args{conf_file}) {
$self->_make_accessors(\%args);
}
return $self;
}
sub _make_accessors {
my ($self,$args) = @_;
my $config = Config::Auto::parse( $args->{conf_file},
format => $args->{conf_format} || 'equal' );
OurApp::Base->mk_accessors(keys %{$config});
foreach (keys %{$config}) {
$self->$_($config->{$_});
}
}
1;
##
##
base_directory=/home/trs80
show_code=1
turn_off_sprinkler=0
feed_dog=1
##
##
#!/usr/bin/perl
use strict;
use OurApp;
my $object = OurApp->new( conf_file => "/home/trs80/ourapp.conf",
conf_format => 'equal' );
print $object->base_directory() , "\n";
$object->base_directory("/home/otheruser/");
print $object->base_directory() , "\n";