use HTML::TokeParser::Simple;
my $p = HTML::TokeParser::Simple->new( $somefile );
while ( my $token = $p->get_token ) {
next unless $token->is_start_tag( 'input' ) or $token->is_start_tag( 'textarea' );
my %attribute_hash = %{ $token->return_attr };
# do your thing ...
}