#!/usr/bin/perl use warnings; use strict; use HTML::Parser; my $p = HTML::Parser->new(text_h => [\&text, 'text'], default_h => [\&passthru, 'text']); $p->parse_file(*DATA); sub text { $_[0] =~ s/foo/bar/; print $_[0]; } sub passthru { print $_[0]; } __DATA__