use strict; use warnings; use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; $Win32::OLE::Warn = 3; # die on errors... my $Excel = Win32::OLE->new('Excel.Application'); $Excel->{DisplayAlerts}=0; my $Book = $Excel->Workbooks->Open("input.xls"); my $Sheet = $Book->Worksheets(1); my $LastCol = $Sheet->UsedRange->Find({What=>"*", SearchDirection=>xlPrevious, SearchOrder=>xlByColumns})->{Column}; #I am getting values for range my $firstcolum = $Sheet->Range("A1:P1")->{'Value'}; #but how can i use $LastCol after ':' in range values #my $firstcolum = $Sheet->Range("A1:$LastCol1")->{'Value'};