Sigh. Too bad I don't read the manual. I tried putting a simple ssh connection inside eval and discovered it didn't trap STDERR, as it says in
. Sorry for the bad advice.
"Beware that using eval() neither silences perl from printing warnings to STDERR, nor does it stuff the text of warning messages into $@. To do either of those, you have to use the $SIG{__WARN__} facility. See warn and the perlvar manpage."