in reply to shell execution question

Sometimes solving a problem is only fixing a symptom. If you are really wanting to automate some commands via ssh, you really should look into btrott's Net::SSH::Perl. Here's an example:
use strict; use warnings; use Net::SSH::Perl; my $user = ''; my $pass = ''; my @host = qw(host1 host2); for my $host (@host) { my $ssh = Net::SSH::Perl->new($host, protocol => "2,1"); $ssh->login($user,$pass); my ($stdout, $stderr, $exit) = $ssh->cmd('hostname'); print STDOUT $stdout if $stdout; print STDERR $stderr if $stderr; print "remote command exited with [$exit]\n"; }
I don't think you need to ping each host first, but should you still want to, check out Net::Ping.

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)