# Creating functions from a eigenvalues output [closed]

I need to create a function with the Eigenvalues output. The problem in question is that I need to manipulate variables from the eigenvalues and then plotting them. A simple version of the problem is

u =
(Exp[I*Phi]/Sqrt[2]) *
({{Exp[I*Pi*(l + m)/4], Exp[-I*Pi*m/2]*Exp[I*Pi*(l + m)/4]},
{-Exp[I*Pi*m/2]* Exp[-I*Pi*(l + m)/4], Exp[-I*Pi*(l + m)/4]}})


with the eigenvalues

eigenval = Eigenvalues[u]

{(E^(I*Phi - (I*m*Pi)/2 - (1/4)*I*(l + m)*Pi) *
(E^((I*m*Pi)/2) + E^((I*m*Pi)/2 + (1/2)*I*(l + m)*Pi) -
E^((I*m*Pi)/2)*Sqrt[1 - 6*E^((1/2)*I*(l + m)*Pi) +
E^(I*(l + m)*Pi)]))/(2*Sqrt[2]),
(E^(I*Phi - (I*m*Pi)/2 - (1/4)*I*(l + m)*Pi)*
(E^((I*m*Pi)/2) + E^((I*m*Pi)/2 + (1/2)*I*(l + m)*Pi) +
E^((I*m*Pi)/2)*Sqrt[1 - 6*E^((1/2)*I*(l + m)*Pi) +
E^(I*(l + m)*Pi)]))/(2*Sqrt[2])}


I tried to define functions from the eigenvalue output like so:

ein1[m_, l_, phi_] := eigenval[[1]]
ein2[m_, l_, phi_] := eigenval[[2]]


The problem is that if a change the values as ein[1, 2, 3], there is no substitution in eigenval[[1]]. So I ended doing this substitution by hand, but I need to manipulate a large number of eigenvalues and that besides to be a tedious task, it leads to a large number of "human errors". Do you know if there is an efficient method to do this?

:= delays evaluation, so eigenval[[1]] gets evaluated after the substitution. Thus, the substitution has no effect. In this case, you should use =:
ein1[m_,l_,phi_]= eigenval[[1]]