That doesn't look anything like what I wrote. I showed how to contruct a shell command to pass to ssh but you passed 5 arguments after the target, none of which a shell command.
If you call ssh twice, you have two shell commands to build.
sub text_to_shell_lit(_) {
return $_[0] if $_[0] =~ /^[a-zA-Z0-9_\-]+\z/;
my $s = $_[0];
$s =~ s/'/'\\''/g;
return "'$s'";
}
my $very_remote_cmd = join ' ', map text_to_shell_lit,
argcount => ( 'a b c' );
my $remote_cmd = join ' ', map text_to_shell_lit,
ssh => ( '--', $very_remote_target, $very_remote_cmd );
backticks(ssh => ( '--', $remote_target, $remote_cmd ));