Какое значение из sysinfo вас интересует? например, uptime может быть возвращено
return SOAP::Data->name('result')->type('string')->value($si->{uptime});
Если вы действительно хотите ВСЕМ информацию, то Data :: Dumper вполне может быть лучшим способом.
Для нескольких возвращаемых значений вы можете использовать Data :: Dumper:
use Data::Dumper;
...
return SOAP::Data->name('result')->type('string')->value(Dumper $si);
Или вы можете сохранить несколько значений в объекте SOAP :: Data с разными именами и вернуть его.