Gracias por las respuestas.
Primero de todo aclarar que el hice un error de transcripción y efectivamente es $ y no &.
Haciendo la prueba que comenta Nibble :
funciona bien y me he dado cuenta que el problema no es al asignarle la variable sinó cuando mas adelante en el script hago lo siguiente (para sustituir la palabra EMAIL por el mail del usuario):
perl -W -p -i -e 's/EMAIL/correo_elec@dominio.com/g;' plantilla
Luego en la plantilla es donde queda mal modificado.
Poniendo '\' antes de la '@' como dice Elohe me lo hace bien:
perl -W -p -i -e 's/EMAIL/correo_elec\@dominio.com/g;' plantilla
Pero el problema es que esto no lo voy a entrar yo sinó que este valor será cogido desde un formulario web (php).
Se me ocurre realizar una partición manual del email para poder tratarlo adecuadamente.
No se si hay otra opción más fácil?
Muchas gracias
Saludos