DynGig-Range
In addition to expanding range expressions into lists, and serializing lists as range expressions, DynGig::Range::String is also able to interpret and perform set operations.
Union of sets A and B, is denoted as A,B.
Difference of set A from B, is denoted as A,-B.
Intersection of sets A and B, is denoted as A,&B.
Catenation of sets A and B, is denoted as AB.
Scope is denoted with { }.
Union, difference, and intersection have equal precedence, and are preceded by catenation. Scope precedes all other operators. e.g.
'{a1,b2}{1~9,&{3~11,-2~7}}' results in a18, a19, b28, b29
Furthermore, Range::String is able to interpret a subset* of perl regular expressions, so that simple ad-hoc filtration of results is possible.
'{a1,b2}{1~9,&{3~11,-2~7}},-/^a/' results in b28, b29
'{a1,b2}{1~9,&{3~11,-2~7}},&/9$/' results in a19, b29
With overloaded operators +, -, &, +=, -=, &=, "", @{}, etc., set calculations on range objects are like simple integer arithmetic, and range objects can be interpolated like strings or lists.
Given properly named hosts, DynGig::Range::String can give your tools the ability to interpret range expressions from the command line or configuration files. Along with other techniques which we will introduce in later chapters, the complexity and difficulty of administrating hundreds of thousands of hosts can possibly be reduced to that of operating a handful.
<Footnote>: Due to the implementation of DynGig::Range::String, Range has precedence on symbols common to both Range and regex. Therefore symbols such as , { } cannot be used in regex.
INSTALLATION
To install this module, run the following commands:
perl Makefile.PL
make
make test
make install
SUPPORT AND DOCUMENTATION
After installing, you can find documentation for this module with the
perldoc command.
perldoc DynGig::Range
You can also look for information at:
RT, CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=DynGig-Range
AnnoCPAN, Annotated CPAN documentation
http://annocpan.org/dist/DynGig-Range
CPAN Ratings
http://cpanratings.perl.org/d/DynGig-Range
Search CPAN
http://search.cpan.org/dist/DynGig-Range/
COPYRIGHT AND LICENCE
Copyright (C) 2011 Kan Liu
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.