#!/usr/bin/perl
use strict;
use warnings;
use Data::Dump 'pp';
use A;
my $cnf = A->init('parameters.conf');
pp $cnf;
print $cnf->get_value('abc','xyz');
print "\n";
print $cnf->get_value('blue','pqr');
package A;
# file A.pm
use strict;
use warnings;
use Text::CSV_XS;
use IO::File;
sub init {
my ($class,$filename) = @_;
my $self = {};
my $csv_fh = IO::File->new($filename, 'r');
my $csv = Text::CSV_XS->new( { allow_whitespace => 1 } );
while (my $row = $csv->getline($csv_fh)){
my $param = $row->[0];
my $key = $row->[1];
next if $key =~ /^#/;
if ($key =~ /\S/){
$self->{$param}{$key} = {
'value' => $row->[2],
'id' => $row->[3]
};
}
}
return bless $self, $class;
}
sub get_value {
my ($self, $param, $key ) = @_;
return $self->{$param}{$key}{'value'};
}
1;