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;