use strict; use warnings; use 5.010; use Spreadsheet::Read qw(ReadData); my $book = ReadData ('excel.xlsx'); my @rows = Spreadsheet::Read::rows($book->[1]); foreach my $i (1 .. scalar @rows) { foreach my $j (1 .. scalar @{$rows[$i-1]}) { say " $i " . " $j " . ($rows[$i-1][$j-1] // ''); } }