use HTML::Entities; use HTML::TokeParser::Simple; my $p = HTML::TokeParser::Simple->new('somefile'); while ( my $token = $p->get_token ) { print $token->as_is; next unless $token->is_start_tag( 'textarea' ); while ($token) { $token = $p->get_token; last if $token->is_end_tag( 'textarea' ); print HTML::Entities::_entities( $token ); } print $token->as_is; }