HCKit-Template
view release on metacpan or search on metacpan
Template.pm view on Meta::CPAN
sub parse_data_body {
my ($self, $body, $env) = @_;
my %hash;
my $text;
my $last = 0;
while( $body =~
/(<([\w-]+)>(.*?)<\/\2> |
<\*(.*?)\*> |
(<!\[\[CDATA\[.*\]\]>)
)/gsx ){
my ($match, $sym, $val, $cmd, $cdata) = ($1,$2,$3,$4,$5);
my $len = length($match);
my $pre = substr($body, $last, pos($body)-$len-$last);
$text .= $pre;
$last = pos($body);
if( $sym ){
my $sub = $self->parse_data_body($val, $env);
extend_data($sym, $sub, \%hash);
}
elsif( $cdata ){
$cdata =~ s/^<!\[\[CDATA\[//;
$cdata =~ s/\]\]>$//;
$text .= $cdata;
}
else{
my ($key, $aux) =
$cmd =~ /\s*([\w:.-]+)\s*(.*)/;
my $val = $self->eval_var($key, $aux, $env);
if( ref($val) eq "HASH" ){
while( my ($sym, $sub) = each %$val ){
extend_data($sym, $sub, \%hash);
}
}
( run in 0.293 second using v1.01-cache-2.11-cpan-454fe037f31 )