SMS? Yikes. I've only played with it a little bit, but I've never actually messed with the interfaces, especially with perl or anything like that. So, with that in mind, this is what I could find for you. Basically, if there isn't a good DBD driver for something Microsoft makes, always check COM objects and
Win32::OLE.
MSDN is your buddy:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sms/refsms10_1wdu.asp
That lists the COM interfaces to the SMS console. That's as close an alternative that I could come up with. I don't know it if will work if you have read-only access to the database.
The only DBI module that I see in CPAN that does SQL Server is
DBIx::MSSQLReporter.
<nt><nt>
It's a heck of a task. You may also be able to get away with using Win32::OLE with Excel.Application. Again, I've never tried these items, but it's a place to start. Good luck
--
jb