dispatch —
Interchange 5.9.0:
Source: lib/Vend/Interpolate.pm
Lines: 4003
sub tag_dispatch { my($tag, $count, $item, $hash, $chunk) = @_; $tag = lc $tag; $tag =~ tr/-/_/; my $full = lc "$Orig_prefix-tag-$tag"; $full =~ tr/-/_/; #::logDebug("tag_dispatch: tag=$tag count=$count chunk=$chunk"); my $attrseq = []; my $attrhash = {}; my $eaten; my $this_tag; $eaten = Vend::Parse::_find_tag(\$chunk, $attrhash, $attrseq); substr($chunk, 0, 1) = ''; $this_tag = Vend::Parse::find_matching_end($full, \$chunk); $attrhash->{prefix} = $tag unless $attrhash->{prefix}; my $out; if(defined $Dispatch_hash{$tag}) { $out = $Dispatch_hash{$tag}->($count, $item, $hash, $attrhash, $this_tag); } else { $attrhash->{body} = $this_tag unless defined $attrhash->{body}; #::logDebug("calling tag tag=$tag this_tag=$this_tag attrhash=" . uneval($attrhash)); $Tag ||= new Vend::Tags; $out = $Tag->$tag($attrhash); } return $out . $chunk; }