view Lib/Configuration.pm @ 52:15d720913562

security in work
author wizard@linux-odin.local
date Tue, 02 Mar 2010 20:12:02 +0300
parents 16ada169ca75
children
line wrap: on
line source

package Configuration;
use strict;

my $Configured = 0;

sub import {
    my ($class,$site) = @_;
    
    if ($site and $site ne $Configured) {
        Configure($site);
        $Configured = $site;
    } elsif (not $site and not $Configured) {
        $Configured = 1;
        require Configuration::Global;
    }
}

our %virtualSite;

sub Configure {
    my $siteName = shift;
    require Configuration::Global;
    
    while ( my ($pattern,$configSite) = each %virtualSite) {
        next if not $siteName =~ $pattern;
        if (ref $configSite eq 'CODE') {
            $configSite->();
        } elsif (not ref $configSite and $configSite) {
            require $configSite;
        }
        last;
    }
}



1;