I updated the script with the construction you suggested but the output was the same.
I also noticed that there was an "I" missing from the sed statement and added it.
Script:
my $cmd = qq(ssh -qv $ssh_user\@$bkp_destination 'sed -i "s#.*$hostnam
+e#$skey#gI" /tmp/test.txt');
warn "Launching [[$cmd]]";
system($cmd) == 0 or die "Couldn't launch ssh connection via
+[[$cmd]]: $? / $!";
Output:
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LANG = en_GB.UTF-8
#ssh-rsa AAAAB3NzaC1yc2 root@HOSTA#g" /tmp/test.txt
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com repl
+y 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 3312, received 2392 bytes, in 0.1 seconds
Bytes per second: sent 51671.7, received 37318.5
debug1: Exit status 0
From the $bkp_destination host:
user@bkphost:/tmp$ cat test.txt
As123312123 asdasdadasqsef3w4rfweweweffwerfew
As123312123 asdasdadasqsef3w4rfweweweffwerfew
i12311231231231 HOSTA
As123312123 asdasdadasqsef3w4rfweweweffwerfew
user@bkphost:/tmp$ echo $h
HOSTA
user@bkphost:/tmp$ echo $k
ssh-rsa AAAAB3NzaC1yc2 root@HOSTA
user@bkphost:/tmp$ sed -i "s#.*$h#$k#gI" test.txt
user@bkphost:/tmp$ cat test.txt
As123312123 asdasdadasqsef3w4rfweweweffwerfew
As123312123 asdasdadasqsef3w4rfweweweffwerfew
ssh-rsa AAAAB3NzaC1yc2 root@HOSTA
As123312123 asdasdadasqsef3w4rfweweweffwerfew