in reply to Check host

@details = qx($SSH $host $DOMAIN; $LINUXOS);

You want to pass multiple commands to the server separated by that semicolon. In your case, shell interpretation is going on locally. consider the difference between these two command lines:

$ ssh foo@bar.com /bin/domainname; cat /etc/redhat-release $ ssh foo@bar.com '/bin/domainname; cat /etc/redhat release'
Your code is doing the first. Add some quotes.

-sauoq
"My two cents aren't worth a dime.";