Config-INI-RefVars
view release on metacpan or search on metacpan
lib/Config/INI/RefVars.pm view on Meta::CPAN
my $_parse_ini = sub {
my ($self, $src) = @_;
my $src_name;
if (ref($src)) {
croak("Internal error: argument is not an ARRAY ref") if ref($src) ne 'ARRAY';
$src_name = $self->{+SRC_NAME};
}
else {
$src_name = $src;
$src = [do { local (*ARGV); @ARGV = ($src_name); <> }];
}
my $curr_section;
my $cmnt_vl = $self->{+CMNT_VL};
my $sections = $self->{+SECTIONS};
my $sections_h = $self->{+SECTIONS_H};
my $expanded = $self->{+EXPANDED};
my $variables = $self->{+VARIABLES};
my $tocopy_sec = $self->{+TOCOPY_SECTION};
my $tocopy_vars = $variables->{$tocopy_sec}; # hash key need not to exist!
my $global_mode = $self->{+GLOBAL_MODE};
lib/Config/INI/RefVars.pm view on Meta::CPAN
}
}
}
else {
croak("'src': $ref_src: ref type not allowed");
}
}
else {
if (index($src, "\n") < 0) {
my $path = $src;
$src = [do { local (*ARGV); @ARGV = ($path); <> }];
$self->{+SRC_NAME} = $path if !exists($self->{+SRC_NAME});
my ($vol, $dirs, $file) = splitpath(rel2abs($path));
@{$global_vars}{'=INIfile', '=INIdir'} = ($file, catdir(length($vol // "") ? $vol : (),
$dirs));
}
else {
$src = [split(/\n/, $src)];
$self->{+SRC_NAME} = $dflt_src_name if !exists($self->{+SRC_NAME});
}
}
( run in 0.455 second using v1.01-cache-2.11-cpan-49f99fa48dc )