in reply to hash with an initial key/value of ' '

You are assigning to $hash{$remote_mt} even when the test /nfs/ fails, and that case $remote_mt is undef. I think you want:
while (<DATA>) { unless ( /\A#|^$/ ) { if (/nfs/) { ($remote_mt,$local_mt) = +(split)[0,1]; $hash{$remote_mt} = $local_mt; } } }
I would probably write the loop like this:
while (<DATA>) { next if /^\s*#/; my @f = split(' ', $_); if ($f[2] eq "nfs") { $hash{$f[0]} = $f[1]; } }
Just a little more robust in case some other field has 'nfs' in it.