in reply to Constructing hashes

I second the suggestion - use $_ in your inner loop:

for my $server (@servlist) { my @cmd = `pulldata -e $server`; for (@cmd) { ...

Your regex is malformed - use //, or another delimiter like m##. And the trailing dot-star is wasteful.

#if ($line =~ '^\s+(\w+):\s.*') if ($line =~ /^\s+(\w+):\s/)