See Using Win32::OLE and Excel - Tips and Tricks, and likely the list in Use The Macro Recorder, Luke (Re: Using Win32::OLE and Excel - Tips and Tricks).
You don't tell us how it "doesn't seem to be working", but my guess is that there is no method named autofilter in Excel. Most methods start with an uppercase name in Excel. I would check that the name is spelled correctly, and again use the Macro Recorder approach.
Update: On thinking a bit, I realize that the (so far unmentioned) Spreadsheet::WriteExcel has a ->autofilter method. But its documentation does not mention R1C1 syntax for that method, so I guess you have to use the documeted way of passing the arguments.