in reply to Net::Ping:External

my $alive = ping(host => "\${server}");

are you really trying to ping a machine called $(server)? try rewriting this line as:

my $alive = ping(host => $server);

In a double quoted string, \$ is just escaping the dollar sign, while you want to interpolate the value of $server. And since there is nothing else in the string but $server, might as well skip the interpolation, and just pass the value to ping.

-- Dan