TagGroup — group Interchange code declarations in groups, for later convenient inclusion or exclusion from the setup
The directive groups symbols (usually depending on their type) under group names. This allows for very convenient inclusion or exclusion of whole tag groups from the Interchange server.
Example: Defining TagGroup
TagGroup :file "counter file include log value_extended" Require taggroup :file
Interchange 5.9.0:
Source: lib/Vend/Config.pm
Line 2592 (context shows lines 2592-2623)
sub parse_tag_group { my ($var, $setting) = @_; my $c; if(defined $C) { $c = $C->{$var} || {}; } else { no strict 'refs'; $c = ${"Global::$var"} || {}; } $setting =~ tr/-/_/; $setting =~ s/[,\s]+/ /g; $setting =~ s/^\s+//; $setting =~ s/\s+$//; my @pairs = Text::ParseWords::shellwords($setting); while(@pairs) { my ($group, $sets) = splice @pairs, 0, 2; my @sets = grep $_, split /\s+/, $sets; my @groups = grep /:/, @sets; @sets = grep $_ !~ /:/, @sets; for(@groups) { next unless $c->{$_}; push @sets, @{$c->{$_}}; } $c->{$group} = \@sets; } return $c; }