Supondo que você queira apenas as variáveis de shell $repo
$arch
e $linesToWrite
expanded, coloque-as entre aspas duplas e o resto entre aspas simples. As strings entre aspas uma ao lado da outra formam uma única string ("a" 'b' é ab). (Eu não sei o que você está fazendo com as barras invertidas no comando substituto, então eu as deixei, mas você provavelmente não as quer).
perl -0pE 'use strict; my $repo = "'"$repo"'"; my $arch = "'"$arch"'";
s|\rsync:\/\/[^\]]+|'"${linesToWrite}"'|'