Non è un problema di assegnamento, ma della visualizzazione. Il browser analizzando il contenuto da stampare sullo schermo, quando incontra "<" seguito da una lettera lo interpreta come inizio di un tag e quindi non stampa il nome del tag, che nel tuo caso è il resto della stringa. Se ti serve per forza stampare quel codice sullo schermo puoi aggiungere uno spazio dopo il carattere "<".
Come alternativa, se ti serve solo stampare questa stringa puoi sostituire "<" con "<", ma in quel caso utilizzo di quella variabile nella funzione eval sarebbe compromesso.
Nel caso in cui non ti serve stampare la stringa ma solo eseguirla con la funzione eval, non serve ne spazio dopo ne sostituzione del carattere "<".
Spero di essere stato di aiuto.