Yes, it's instantiating a TestWrapper object, or it wouldn't be giving the client output that I'm already getting. Renaming the constructor results in "Can't locate object method "put" via package "SOAP::SOM" at client.pl line 10.". Using $soap->call('new') instead of $soap->new() makes no difference either way.
The problem is, the SOAP::Lite documentation and examples that are out there are severely out of date, and many do not work at all with the current version. The only example I could find for remote instantiation was this one, which does work. However, only the constructor takes a user-defined argument, the subsequent method call is static, and only takes the object returned by call(). Unfortunately, I can't seem to figure out how to get this to work with regular methods that take additional arguments (other than the object itself).
Thanks for the input!