in reply to Piping STDOUT

Just for completeness in tearing your question apart :) -- 'warn' will output to STDERR, and if you use "" to surround the string you don't need to escape the '. Just say
@err = `sc \\\\${hostname} stop SNMP 2>&1` or warn "Couldn't stop the +SNMP service,";
Now, is that what you want? The above will warn you if the command doesn't say anything on either stdout or stderr -- which in most cases means nothing was wrong. If it's the opposite behavior you want (warn if something _was_ output), s/and/or/. If you just want to catch stderr and throw stdout away, the simplest thing to do is to futz with the shell redirection inside the `` like so (remember it's going to be sh even if you choose to afflict yourself with (t)csh interactively):
@err = `sc \\\\${hostname} stop SNMP 2>&1 >/dev/null` or warn "Couldn' +t stop the SNMP service,";
---
"I hate it when I think myself into a corner."
Matt Mitchell