Config-Fast
view release on metacpan or search on metacpan
lib/Config/Fast.pm view on Meta::CPAN
use base 'Exporter';
our @EXPORT = qw(fastconfig);
our $VERSION = do { my @r=(q$Revision: 1.7 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r };
our %READCONF = ();
#
# Global settings - can override with $Config::Fast::PARAM = 'value';
#
our $DELIM = '\s+'; # default delimiter
our $KEEPCASE = 0; # preserve MixedCase variables?
our $ENVCAPS = 1; # setenv ALLCAPS variables?
our $ARRAYS = 0; # set var[0] as array elements?
our @DEFINE = (); # predefines of key=val
our %CONVERT = ( # convert these values appropriately
'true|on|yes' => 1,
'false|off|no' => 0,
);
# Aliases for prettiness
*Arrays = \$ARRAYS;
*Define = \@DEFINE;
lib/Config/Fast.pm view on Meta::CPAN
my @lines = @Config::Fast::DEFINE;
for (@file) {
next if /^\s*$/ || /^\s*#/; chomp;
push @lines, [split /$delim/, $_, 2];
}
for (@lines) {
my($key, $val) = @$_;
# See if our var is ALLCAPS to setenv it
my $env = $key =~ /^[A-Z0-9_]+(\[\d+\])?$/ ? $key : undef;
$val =~ s/^\s*(["']?)(.*)\1\s*$/$2/g;
my $q = $1 || '"'; # save quote
unless ($q eq "'") {
$val =~ s/([^a-zA-Z0-9_\$\\'"])/\\$1/g # escape nasty (sneaky?) chars
}
$val = qq{$q$val$q}; # add quotes back in
# Now check for "on/off" or "true/false"
( run in 0.658 second using v1.01-cache-2.11-cpan-3989ada0592 )