File: Config.pm

package info (click to toggle)
libapp-rad-perl 1.05-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 288 kB
  • sloc: perl: 625; makefile: 2
file content (35 lines) | stat: -rw-r--r-- 813 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package App::Rad::Config;

use Carp;

sub load_config {
    my ($c, @files) = (@_);

    foreach my $filename (@files) {

        $c->debug("loading configuration from $filename");
        open my $CONFIG, '<', $filename
            or Carp::croak "error opening $filename: $!\n";

        while (<$CONFIG>) {
            chomp;
            s/#.*//;
            s/^\s+//;
            s/\s+$//;
            next unless length;

            if ( m/^([^\=\:\s]+)        # key
                (?:                     # (value is optional)
                   (?:\s*[\=\:]\s*|\s+) # separator ('=', ':' or whitespace)
                   (.+)                 # value
                )?
                /x
            ) {
                $c->config->{$1} = $2;
            }
        }
        close $CONFIG;
    }
}

42;