package siteconf; use strict; use warnings; use FindBin; my $configuration = "$FindBin::Bin/../site.conf"; if (!open(FH, '<', $configuration)) { die "Could not open configuration file: $configuration\n"; } my %site_conf; sub read { my $site; while (my $line = ) { chomp $line; next if $line =~ /^#/; next if $line !~ /\S/; if ($line =~ /^\[([A-Za-z0-9_-]+)\]/) { $site = $1; $site_conf{$site} = {}; } elsif ($line =~ /^([A-Za-z0-9_-]+)\s+(.+)/) { $site_conf{$site}->{$1} = $2; } else { die "invalid line in site_conf: $line\n"; } } close(FH); return %site_conf; } 1; __END__ # vim: set tabstop=4 shiftwidth=4 expandtab smarttab: