Subject: | bug in column() |
Date: | Tue, 29 May 2007 13:04:10 -0700 (PDT) |
To: | bug-HTML-TableExtractor [...] rt.cpan.org |
From: | Nicholas Albion <nalbion [...] yahoo.com> |
# I thought it was odd when I was trying to execute the following code
# and it failed on the last line:
my $te = HTML::TableExtract->new();
$te->parse($content);
my $table = $te->first_table_found();
# my $lang = substr( $table->cell(1,0), 0, 5); # <-- This works.
my @tabColum = table->column($table,0);
# I've tried debugging the code, injecting some print"" statements
# into the following code from the HTML::TableExtract module
sub column {
my $self = shift;
my $c = shift;
my @column;
foreach my $row ($self->rows) {
push(@column, $self->cell($row, $c));
}
wantarray ? @column : \@column;
}
# I'm no perl expert, but my debug prints have helped me prove (to myself)
# that the line "foreach my $row ($self->rows) {" associates $row with an ARRAY.
# ...So is it okay to to call "$self->cell( ARRAY, INT )"?
sub cell {
my $self = shift;
my($r, $c) = @_;
my $row = $self->row($r); # <-- $r is an ARRAY!
$c <= $#$row or croak "Column $c out of range ($#$row)\n";
$self->_cell_to_content($row->[$c]);
}
sub row {
my $self = shift;
my $r = shift;
$r <= $#{$self->{grid}} # <-- $r is an ARRAY!
or croak "row $r out of range ($#{$self->{grid}})\n";
my @ri = $self->row_indices;
my @row = $self->_slice_and_normalize_row(
$self->{grid}[($self->row_indices)[$r]]
);
wantarray ? @row : \@row;
}
# ARRAY <= $#{$self->{grid}} --> "row ARRAY(0x1d53464) out of range (27)"