in reply to Net::SSH::Perl push variable into remote file

This is much more a shell question than a Perl question, but as Perl file operators are quite similar to shell file operators, it's still valid..

To append to a file, use >> (or open my $fh, '>>', ... ) instead of > alone.

On the other hand, the pipe character is used for output piping in the shell, but is a logic operator in Perl. So print | $fh does not work. The syntax for printing to a filehandle is print { $fh } $string;, see also print.

You don't show what SSH module you're using, so I'll assume Net::OpenSSH:

my $cmd = "cat >> /home/vmsys/.ssh/authorized_keys"; my ($stdin, $stdout,$stderr,$pid) = $ssh->open_ex("$cmd"); print { $stdin } $mypubcert;