[BLOCK1] KEY1=VALUE1 KEY2=VALUE2 [BLOCK2] KEY1=VALUE1 KEY2=VALUE2 #### #!/usr/bin/perl use warnings; use strict; use Config::Simple; use Data::Dumper; my %config; Config::Simple->import_from('test.ini', \%config) or die Config::Simple->error(); #print Dumper(\%config); my @data = qw< foo bar baz quux >; foreach ( @data ) { # Verify warn( "Parameter '$_' is missing from INI!\n" ) unless exists $config{$_}; } #### foo 'test' baz 'test-2' #### Parameter 'bar' is missing from INI! Parameter 'quux' is missing from INI! #### #!/usr/bin/perl use warnings; use strict; use Config::Simple; use Data::Dumper; my %config; Config::Simple->import_from('conf.ini', \%config) or die Config::Simple->error(); #print Dumper(\%config); my @data = qw< foo bar baz quux >; print "Requirements ".$config{'requirements.test_foo'}."\n"; print "Requirements Array ".$config{'requirements.@test'}."\n"; print "Requirements Hash ".$config{'requirements.%test-2'}."\n"; foreach ( @data ) { # Verify warn( "Parameter '$_' is missing from INI!\n" ) unless exists $config{$_}; } foreach ( @data ) { # Verify warn( "Parameter '$_' is missing from INI!\n" ) unless exists $config{'requirements.@test'}; } foreach ( @data ) { # Verify warn( "Parameter '$_' is missing from INI!\n" ) unless exists $config{'requirements.%test-2'}; } #### [requirements] @test=('bar' 'baz') %test-2=( bar => 1 , baz => 2 ) test_foo='foo' quux_test='quux' #### Requirements foo Requirements Array (bar baz) Requirements Hash ARRAY(0x13a06a8) Parameter 'foo' is missing from INI! Parameter 'bar' is missing from INI! Parameter 'baz' is missing from INI! Parameter 'quux' is missing from INI!