The cannonical form is the second example you give, e.g.
my $te = HTML::TableExtract->new( headers => [qw($service $arrival $tr
+ansit)] );
$te->parse($html_string);
foreach my $row ($te->rows) {
foreach my $cell (@$row) {
print $cell;
}
}
The old style of dealing directly with the arrays of rows is no longer supported (though each row is still indeed an array).
I note that in your example code, you're not setting $html_string beforehand. That could be a paste-o, but make sure you're using strict to catch that kind of thing.
Having said all that -- if it's still not working, which version of HTML::TableExtract are you using?
Thanks,
Matt (author of said module)