Below is an example of it's use and how to interpret the results:
use Win32::Service;
my %statusHash;
Win32::Service::GetStatus("", "EventLog", \%statusHash);
print $statusHash{"CurrentState"} . "\n";
# CurrentState can be:
# 1 = stopped.
# 2 = start pending.
# 3 = stop pending.
# 4 = running.
# 5 = continue pending.
# 6 = pause pending.
# 7 = paused.
No error check done, Sorry.
As you can see GetStatus uses a hash reference to return the results.
This contains other stuff like 'Service Type' and other wierd bits.
I tried this code on NT4 SP3 and it works fine.