in reply to XLS help

use 5.20.0; use warnings; use Spreadsheet::Read; my $sheet = 1; my $column = 2; my @column = @{ReadData ("file.xls")->[$sheet]{cell}[$column]}; while (@column and !defined $column[-1]) { pop @column; } say "Column ${column}'s last defined row = ", $#column;

Or if you prefer the reference

my $colref = ReadData ("file.xls")->[$sheet]{cell}[$column]; pop @$colref while $#$colref > 1 && !defined $colref->[-1]; say "Column ${column}'s last defined row = ", $#$colref;

If all columns have equal length, you can skip the mumble-jumble and just use

say "Column ${column}'s last defined row = ", ReadData ("file.xls")->[$sheet]{maxrow};

Enjoy, Have FUN! H.Merijn