in reply to Problems with uninitialized value

In both those lines, you are likely to encounter the warnings you see if
$Service->{DisplayName}
is undef.

I would suggest doing a check for "exists $Service->{DisplayName} " as soon as you enter the "for my $Service" loop, and ivoking code if it does not exist. You could also try to run this with the perl debugger, although the OLE module is hostile toward that, and produces a lot of noise.

     "As you get older three things happen. The first is your memory goes, and I can't remember the other two... " - Sir Norman Wisdom