Class of attribute sets, designed for parsing and storing attribute values
from a TWiki tag e.g. %TAG{"joe" fred="bad" joe="mad"}%
An attribute set is a hash containing an entry for each parameter. The
default parameter (unnamed quoted string) is named _DEFAULT in the hash.
Attributes declared later in the string will override those of the same
name defined earlier. The one exception to this is the _DEFAULT key, where
the first instance is always taken.
As well as the default TWiki syntax (parameter values double-quoted)
this class also parses single-quoted values, unquoted spaceless
values, spaces around the =, and commas as well as spaces separating values.
The extended syntax has to be enabled by passing the $friendly parameter
to new.
$friendly - if true, the parse will be according to the extended syntax pioneered by the original Contrib::Attrs. Otherwise it will be strict as per traditional TWiki syntax.
Parse a standard attribute string containing name=value pairs and create a new
attributes object. The value may be a word or a quoted string. If there is an
error during parsing, the parse will complete but $attrs->{_ERROR} will be
set in the new object. $attrs->{_RAW} will always contain the full unprocessed
$string.
Extended syntax example:
my $attrs = new TWiki::Attrs('the="time \\"has come", "the walrus" said to=speak of=\'many \\'things\', 1);
In this example:
the will be time "has come
__default__ will be the walrus
said will be on
to will be speak
of will be many 'things
Only " and ' are escaped.
Traditional syntax is as old TWiki, except that the whole string is parsed
(the old parser would only recognise default values in position 1, nowhere
else)