car.txt contents: [pinto] horse_power = 50 price = 10 [corvette] horse_power = 200 price = 11000 #!/usr/bin/env/perl use strict; use warnings; use Car; my $car = Car->new('corvette'); print "My ", $car->model, " has ", $car->horse_power, " horsepower!"; 1; package Car; use strict; use warnings; use Config::Tiny; my $CONFIG = './car.txt'; sub new { my ($class, $model) = @_; my $cfg = Config::Tiny->new(); $cfg = Config::Tiny->read($CONFIG); die warn "No such model $model!\n" unless exists $cfg->{$model}; return bless { model => $model, %{$cfg->{$model}} } , __PACKAGE__; } sub model {die warn "Can't change model!" if @_ > 1; $_[0]->{model}; } sub horse_power {$_[0]->{horse_power} = $_[1] if @_ > 1; $_[0]->{horse_power}; } sub price {$_[0]->{price} = $_[1] if @_ > 1; $_[0]->{price}; } 1;