use HTML::Parser; our $parser=new HTML::Parser ( # Call &event_handler on all plaintext, pass plaintext as argument 0 (decodes entities) 'text_h' => [\&event_handler,'dtext'] ); our $text_buffer=''; $parser->parse($html); sub event_handler { $text_buffer.=$_[0]; }