my @bcfHeaders = [qr/Month\s*/, qr/First\s*/, qr/High\s*/, qr/Low\s*/, qr/Sett\s*/, qr/Chg\s*/, qr/Vol\s*/, qr/BWAVE\*\s*/, qr/Prev Vol\s*/, qr/Open\s*Int\s*/]; my $te = HTML::TableExtract->new( headers => @bcfHeaders, keep_headers => 1 ); $te->parse_file($filename); my ($ts, $row, $record); foreach $ts ($te->tables) { foreach $row ($ts->rows) { $record = join("\t", @$row); print $filehandle $record . "\n"; } }