diff --git a/lib/Config/INI.pm b/lib/Config/INI.pm new file mode 100644 index 0000000..25e3258 --- /dev/null +++ b/lib/Config/INI.pm @@ -0,0 +1,99 @@ + +use strict; + +package Config::INI; + +=head1 NAME + +Config::INI - simple .ini-file format + +=head1 VERSION + +version 0.010 + +=cut + +$Config::INI::VERSION = '0.010'; + +=head1 GRAMMAR + +This section describes the format parsed and produced by Config::INI::Reader +and ::Writer. It is not an exhaustive and rigorously tested formal grammar, +it's just a description of this particular implementation of the +not-quite-standardized "INI" format. + + ini-file = {
| } + + empty-line = [ ] + + section = { | } + + section-header = [ ] "[" "]" [ ] + section-name = string + + value-assignment = [ ] [ ] + "=" + [ ] [ ] + + property-name = string-without-equals + value = string + + comment = ";" [ ] + line-ending = [ ] + + space = ( | " " ) * + string-without-equals = string - "=" + string = ? a string of characters, excluding ; or EOL ? + +Of special note is the fact that I escaping mechanism is defined, meaning +that there is no way to include an EOL or semicolon (for example) in a value, +property name, or section name. If you need this, either subclass, wait for a +subclass to be written for you, or find one of the many other INI-style parsers +on the CPAN. + +The order of sections and value assignments within a section are not +significant, except that given multiple assignments to one property name within +a section, only the final one is used. A section name may be used more than +once; this will have the identical meaning as having all property assignments +in all sections of that name in sequence. + +=head1 DON'T FORGET + +The definitions above refer to the format used by the Reader and Writer classes +bundled in the Config-INI distribution. These classes are designed for easy +subclassing, so it should be easy to replace their behavior with whatever +behavior your want. + +Patches, feature requets, and bug reports are welcome -- but I'm more +interested in making sure you can write a subclass that does what you need, and +less in making Config-INI do what you want directly. + +=head1 BUGS + +Bugs should be reported via the CPAN bug tracker at + +L + +For other issues, or commercial enhancement or support, contact the author. + +=head1 THANKS + +Thanks to Florian Ragwitz for improving the subclassability of Config-INI's +modules, and for helping me do some of my first merging with git(7). + +=head1 AUTHOR + +Ricardo SIGNES, C<< Erjbs@cpan.orgE >> + +Originaly derived from L, by Adam Kennedy. + +=head1 COPYRIGHT + +Copyright 2007, Ricardo SIGNES. + +This program is free software; you may redistribute it and/or modify it under +the same terms as Perl itself. + +=cut + +1;