A partir de sua primeira tentativa, você deseja ${var1}
expandido pelo shell e todas as outras variáveis $
protegidas dele (para que o Perl as expanda):
perl -i -pe "s/(keepme=)(.*)/\${var1}/ if \$. == 1" ../file.txt
As aspas duplas, em vez das aspas simples, fazem com que Perl receba newstring
em vez do nome da variável, e escapar dos outros sinais de cifrão com barras invertidas faz com que o shell as passe sem ser tocado.