in reply to Calling a .NET web service from perl scripts

You need to break up that huge chain of ->s, check the return values on those calls, and print a sensible error message when it goes wrong.

One of those steps in the chain is either failing or not returning what you expect, but you've made your code blunder on blindly trying to use an undefined value instead of the object you need.