ossp-web/pkg/lib/var/index.wml
#use wml::ossp area=pkg:lib subarea=var
<title>OSSP var</title>
<h1>Variable Expansion</h1>
<h2>Abstract</h2>
OSSP var is a flexible, full-featured and fast variable construct
expansion library. It supports a configurable variable construct
syntax very similar to the style found in many scripting languages
(like <tt>@name</tt>, <tt>${name}</tt>, <tt>$(name)</tt>, etc.)
and provides both simple scalar (<tt>${name}</tt>) and array
(<tt>${name[index]}</tt>) expansion, plus optionally one or more
post-operations on the expanded value (<tt>${name:op:op...}</tt>).
<p>
The supported post-operations are length determination, case conversion,
defaults, postive and negative alternatives, sub-strings, regular
expression based substitutions, character translations, and padding.
Additionally, a meta-construct plus arithmetic expressions for index and
range calculations allow (even nested) iterations over array variable
expansions (<tt>..[..${name[#+1]}..]..</tt>). The actual variable value
lookup is performed through a callback function, so OSSP var can expand
arbitrary values.
<p>
<blockquote>
<font size=-1>
Hint: There is also an ISO C++ derivative of the OSSP var library, named
<a href="http://cryp.to/libvarexp/">libvarexp</a>. It is based on
a development version of OSSP var and hence does not provide exactly
the same amount of functionality. But it provides an ISO C++ API and so
can be of interest to you if you are programming in ISO C++ (where OSSP
var's ISO C API might be too boring for you).
</font>
</blockquote>
<h2>Documentation</h2>
<pkg_manpage name="var" sect=3 path="/pkg/lib/var/var.pod">,
<pkg_manpage name="var-config" sect=1 path="/pkg/lib/var/var-config.pod">.
<h2>Authors</h2>
<pkg_author name="Ralf S. Engelschall" mail="rse@engelschall.com">
<pkg_author name="Peter Simons" mail="simons@computer.org">
<h2>Status</h2>
<pkg_status
name="var" assign="rse"
stable="1.1.3" stable_date="02-Oct-2005"
unstable="none" unstable_date="none"
genesis="08-Mar-2002"
done=100>
<h2>Source</h2>
<pkg_files
cvs=$(CVS_ROOT_URL)/pkg/lib/var/
url=$(FTP_ROOT_URL)/pkg/lib/var/
directory=$(FTP_ROOT_DIR)/pkg/lib/var/
files="var-*.tar.gz"
stable="var-1.1.3.tar.gz" unstable="none">
<h2>Donation</h2>
<pkg_donation name="var" return="$(BASE_URL)/pkg/lib/var/">