$data = q` HTML1 <% CODE1 %> HTML2 <% CODE2 %> HTML3
foo
`; use Data::Dumper; use HTML::TokeParser; my $parser = HTML::TokeParser->new( \$data ); while ( my $token = $parser->get_token() ) { print Dumper($token) if $token->[1] =~ m/<%/; } __DATA__ $VAR1 = [ 'T', '<% CODE1 %> HTML2 ', '' ]; $VAR1 = [ 'T', '<% CODE2 %> HTML3 ', '' ];