package Config::INI::Reader::LibIni; { $Config::INI::Reader::LibIni::VERSION = '0.002'; } use strict; use warnings; use base 'Config::INI::Reader'; sub new { my ($class) = @_; return bless { data => [] }, $class; } sub change_section { my ($self, $section) = @_; push @{ $self->{data} }, [ $section => {} ]; } sub set_value { my ($self, $name, $value) = @_; if ( exists $self->{data}[-1][1]{$name} ) { my $existing = $self->{data}[-1][1]{$name}; if (ref $existing eq 'ARRAY') { push @{ $self->{data}[-1][1]{$name} }, $value; } else { $self->{data}[-1][1]{$name} = [$existing, $value]; } } else { $self->{data}[-1][1]{$name} = $value; } } sub current_section { my ($self) = @_; exists $self->{data}[-1] ? $self->{data}[-1][0] : $self->starting_section; } 1; __END__ =pod =for :stopwords Peter Shangov Plugin =head1 NAME Config::INI::Reader::LibIni =head1 VERSION version 0.002 =head1 AUTHOR Peter Shangov =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Peter Shangov. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut