use HTML::TableExtract; my $te = HTML::TableExtract->new(); $te->parse( $content ); foreach my $ts ( $te->tables() ) { foreach my $row ( $ts->rows() ) { print $outfh join ( "\t", map { defined $_ ? $_ : ''; } @$row ), "\n"; } }