#!/usr/bin/perl use strict; use Spreadsheet::ParseExcel; use Data::Dumper; my %records; my $filename = 'dialler.xls'; my $excel = new Spreadsheet::ParseExcel(CellHandler => \&_excel_handler, NotSetCell => 1) or die $@; $excel->Parse("$filename") or die $@; print Dumper(\%records); sub _excel_handler { my (undef,undef, $row, $col, $cell)= @_; $row = sprintf("%05s", $row); # Zero Pad the Row Number $col = sprintf("%05s", $col); # Zero Pad the Column Number $records{$row}{$col} = $cell->{_Value}; }