in reply to Net::SSH::Perl Question

Net::SSH::Perl should be able to find that identity file by default anyway, but I believe you do need to login, even if there is no user or password:
my $ssh = Net::SSH::Perl->new("host", @key); $ssh->login; my ($out, $err, $exit) = $ssh->cmd("uname -a");
It looks like you are out of luck if you want a non-interactive session on a key that has a passphrase, though I have found that wrapping the above in a shell script like this works:
./my_ssh_script <<EOT passphrase EOT
I haven't needed passphrases badly enough to inquire about a change (I just create the keys without passphrases), but reading the docs, it looks like the author (our own btrott) has thought about it, but hasn't gotten 'round 'tuit yet.