#!/usr/bin/perl --
use strict; use warnings;
my $asp = <<'__HTML__';
abc abc
<% abc ( ' abc abc %>', $abc ); %>
__HTML__
use HTML::Tree;
my $t = 'HTML::TreeBuilder'->new;
$t->ignore_unknown(0);
$t->parse( $asp ); $t->dump; print "\n\n";
$asp =~ s{
<%
((?:
'[^']+'
|
"[^"]+'
|
\$?[\w\s\(\);,]+
|
[^%]+
)+)
%>
}{
my $content = $1;
HTML::Entities::encode_entities( $content );
qq''
}gsex;
$t->parse( $asp ); $t->dump; print "\n\n";
#~ and reverse it
$asp =~ s//
my $content = $1;
HTML::Entities::decode_entities( $content );
$content;
/gsei;
print "$asp\n\n";
__END__
@0 (IMPLICIT)
@0.0 (IMPLICIT)
@0.1 (IMPLICIT)
@0.1.0
" abc á abc <% abc ( '"
@0.1.2
" abc á abc "
@0.1.4
" %>', $abc ); %>"
@0 (IMPLICIT)
@0.0 (IMPLICIT)
@0.1 (IMPLICIT)
@0.1.0
" abc á abc <% abc ( '"
@0.1.2
" abc á abc "
@0.1.4
" %>', $abc ); %> "
@0.1.4.1
" abc á abc "
@0.1.4.3
abc abc
abc ( ' abc abc %>', $abc );