You will want to add 'use strict;' to the top of your code and turn on warnings using the -w command line flag or 'use warnings;'. This will help you pinpoint many syntactical and other errors. See here and here for why.
You're pretty much there with your existing code, a few slight adjustments should make it work:
# the object name is actually SourceSafe.0
my $vss = Win32::OLE->new('SourceSafe.0');
# you must include the path and filename
# of the vss ini file you want, e.g.
# c:\data\sourcesafe\dev\srcsafe.ini
$vss->Open($srcsafe_ini, $user, $pwd);
# error checking
if (Win32::OLE->LastError() != 0)
{
print 'Error: ', Win32::OLE->LastError();
}
If you're using the Activestate distribution, you should be able to use the HTML OLE Browser to see properties and methods available.