use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; # $Win32::OLE::Warn = 3; # die on errors... my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); # get already active Excel # application or open new $Book = $Excel->Workbooks->Open("C:/perlpractice/FU_HMI_List.xlsm"); # open Excel file $Sheet = $Book->Worksheets(3); # select worksheet number 1 $array = $Sheet->Range("B1:E40")->{'Value'}; # get the contents $Book->Close; $i=0; $j=0; foreach $ref_array (@$array) { # loop through the array $i++; $j=0; foreach $scalar (@$ref_array) { $AOA[$i][$j]="$scalar"; $j++; print $j; } } print "$AOA[1][1]";