Passing the parameters to Insert as an anonymous hashref (as mentioned in
Re: Inserting copied rows in Excel using Win32::OLE) is half the battle.
The second problem is quoting 'xlDown'. You don't show where xlDown is defined in your code. If you are defining it as a Constant or importing it via Win32::OLE::Const then drop the quotes and it will work as expected. If you aren't defining xlDown in your script, you'll need to use whatever number xlDown means to Excel.
Personally, I'd import the constants from Excel's typelib with use Win32::OLE::Const 'Microsoft Excel';.