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";