foreach $Host (@MasterMachineIndex) { &ping; # my subroutine to ping system...works fine $Cmd = "rsh $Host uptime"; $Status = `$Cmd`; $CheckHome = ("rsh $Host \"cd $Home\""); $HomeStatus = `$CheckHome 2>&1`; # This captures STDERR and STDOUT outputs that may or may not manifest... if ($HomeStatus =~ /No such/) { # May need to add more keywords here. Not sure all OSs echo same nomenclature... print ("$Home directory not mounted on $Host! Skipping...\n"); } else { $CPUScan = "rsh $Host \"CPUScan.pl >> ./foo\""; $CHECK = `$CPUScan`; print ("$Host:\t$Status"); } }