sub readMeetingData { print "Reading meeting data from $meetingFile... "; my $meeting = new Config::Abstract::Ini($meetingFile) || die("\$!, stopped"); my %meeting = $meeting->get_entry('meeting'); # We're expecting 1 section (see meeting.ini specs). If there's more, we # ignore it, as long as the one we really want is there. We just ignore it # very, very loudly. my %testmeeting = $meeting->get_all_settings; my $numsections = scalar keys %testmeeting; # How many keys (=sections) did we find? if ($numsections != 1) { warn("Meetings file contains more sections ($numkeys) than expected, warning"); } # We're expecting 3 keys (see meeting.ini specs). If we don't get them, we # check if the keys we want are there. If not, we die loudly, if they are, # we simply complain. my $numkeys = scalar keys %meeting; if ($numkeys != 3) { warn("Unexpected number of keys ($numkeys) in $meetingFile, expected 3, warning"); print("Checking if we have the right keys anyway...\n"); @neededKeys = ('aantalhuisjes','aantalinvalidenhuisjes','personenperhuis'); foreach $key (@neededKeys) { if (exists $testmeeting{$key}) { print "Found $key.\n" } else { die "Couldn't find $key, stopped"; } } } else { print " found 3 keys, done.\n"; } return %meeting; }