Config-Record
view release on metacpan or search on metacpan
Config-Record.spec view on Meta::CPAN
# Automatically generated by Config-Record.spec.PL
%define appname Config-Record
# This macro is used for the continuous automated builds. It just
# allows an extra fragment based on the timestamp to be appended
# to the release. This distinguishes automated builds, from formal
# Fedora RPM builds
%define _extra_release %{?dist:%{dist}}%{?extra_release:%{extra_release}}
Summary: Config::Record - Simple configuration records
Name: perl-%{appname}
Version: 1.1.2
Release: 1%{_extra_release}
License: GPLv2+
Config-Record.spec.PL view on Meta::CPAN
open SPEC, ">$ARGV[0]" or die "$!";
print SPEC $_;
close SPEC;
__DATA__
# Automatically generated by Config-Record.spec.PL
%define appname Config-Record
# This macro is used for the continuous automated builds. It just
# allows an extra fragment based on the timestamp to be appended
# to the release. This distinguishes automated builds, from formal
# Fedora RPM builds
%define _extra_release %{?dist:%{dist}}%{?extra_release:%{extra_release}}
Summary: Config::Record - Simple configuration records
Name: perl-%{appname}
Version: @VERSION@
Release: 1%{_extra_release}
License: GPLv2+
lib/Config/Record.pm view on Meta::CPAN
warn "Key: '" . $key . "'\n" if $self->{debug};
foreach (split /((?<!\\)\/)/, $key) {
next if m,^/$,;
warn " -> '" . $_ . "'\n" if $self->{debug};
push @key, $_;
}
my $entry = $self->{record};
my $context;
foreach my $fragment (@key) {
$context = defined $context ? $context . "/" . $fragment : $fragment;
if ($fragment =~ /^\[(\d+)\]$/) {
my $index = $1;
if (ref($entry) ne "ARRAY") {
if (@_) {
return shift;
}
confess "cannot find array value at '$context' for parameter '$key'";
}
if ($#{$entry} < $index) {
if (@_) {
return shift;
}
confess "cannot find array value at '$context' for parameter '$key'";
}
$entry = $entry->[$index];
} elsif ($self->{features}->{quotedkeys}) {
$fragment =~ s/\\(\[|\]|\/|\\)/$1/g;
warn "Quote '$fragment'\n" if $self->{debug};
if (ref($entry) ne "HASH") {
if (@_) {
return shift;
}
confess "cannot find hash value at '$context' for parameter '$key'";
}
if (!exists $entry->{$fragment}) {
if (@_) {
return shift;
}
confess "cannot find hash value at '$context' for parameter '$key'";
}
$entry = $entry->{$fragment};
} else {
warn "NonQuote '$fragment'\n" if $self->{debug};
if ($fragment =~ /((?:\w|-|\.)+)/) {
if (ref($entry) ne "HASH") {
if (@_) {
return shift;
}
confess "cannot find hash value at '$context' for parameter '$key'";
}
if (!exists $entry->{$fragment}) {
if (@_) {
return shift;
}
confess "cannot find hash value at '$context' for parameter '$key'";
}
$entry = $entry->{$fragment};
} else {
confess "fragment '$fragment' should be alphanumeric, or an array index";
}
}
}
return $entry;
}
sub set {
my $self = shift;
lib/Config/Record.pm view on Meta::CPAN
warn "Key: '" . $key . "'\n" if $self->{debug};
foreach (split /((?<!\\)\/)/, $key) {
next if m,^/$,;
warn " -> '" . $_ . "'\n" if $self->{debug};
push @key, $_;
}
my $entry = $self->{record};
my $context;
while (defined (my $fragment = shift @key)) {
$context = defined $context ? $context . "/" . $fragment : $fragment;
if ($fragment =~ /^\[(\d+)\]$/) {
my $index = $1;
if (ref($entry) ne "ARRAY") {
confess "cannot find array value at $context for parameter $key";
}
if (@key) {
if (exists $entry->[$index]) {
$entry = $entry->[$index];
} else {
if ($key[0] =~ /^\[(\d+)\]$/) {
$entry->[$index] = [];
} else {
$entry->[$index] = {};
}
$entry = $entry->[$index];
}
} else {
$entry->[$index] = $value;
}
} elsif ($self->{features}->{quotedkeys}) {
$fragment =~ s/\\(\[|\]|\/|\\)/$1/g;
warn "Quote '$fragment'\n" if $self->{debug};
if (ref($entry) ne "HASH") {
confess "cannot find hash value at $context for parameter $key";
}
if (@key) {
if (exists $entry->{$fragment}) {
$entry = $entry->{$fragment};
} else {
if ($key[0] =~ /^\[(\d+)\]$/) {
$entry->{$fragment} = [];
} else {
$entry->{$fragment} = {};
}
$entry = $entry->[$fragment];
}
} else {
$entry->{$fragment} = $value;
}
} else {
warn "NonQuote '$fragment'\n" if $self->{debug};
if ($fragment =~ /((?:\w|-|\.)+)/) {
if (ref($entry) ne "HASH") {
confess "cannot find hash value at $context for parameter $key";
}
if (@key) {
if (exists $entry->{$fragment}) {
$entry = $entry->{$fragment};
} else {
if ($key[0] =~ /^\[(\d+)\]$/) {
$entry->{$fragment} = [];
} else {
$entry->{$fragment} = {};
}
$entry = $entry->[$fragment];
}
} else {
$entry->{$fragment} = $value;
}
} else {
confess "fragment '$fragment' should be alphanumeric, or an array index";
}
}
}
}
sub record {
my $self = shift;
return $self->{record};
( run in 1.715 second using v1.01-cache-2.11-cpan-364913b4093 )