- But you are positive the script runs, right?
- Under what account does the service run? Did you try to run it under the account of the user that it was running under before?
- Do you get any errors somewhere?
- What about if you redirect both STDOUT and STRERR to a log file in a BEGIN{} block on top of your script? Do you see anything there then?
- Do you try to access any mapped drives or UNCs from the script? While the second should work fine if you run the service under a domain account, the first is doomed to fail. As you may know, the drives are mapped per user session, so the service doesn't see them. And I believe even if they were set as "persistent" for the user the service runs under they would not be available.
I do not see any reason why would Win32::AdvNotify require a console. I'd think permissions are a much more likely culprit.
If you think it is the console and you run the service under LocalSystem account you may try to "Allow service to interact with desktop". That should allow it to create a console, though maybe it will be visible only if there is someone loged on.
Hope one of the wild guesses will help :-)
Jenda