No acabas de entenderlo... sigues creando el contenido de las variables como cadenas de caracteres.
Deberías usar el módulo Data::Dumper, para que te muestre el contenido de las variables que estás creando.
Por ejemplo, ¿qué sentido tiene la línea 40? ¿Por qué guardas en @orden
un solo valor, que tiene la forma
"$in->name => $valor"
? (Observa que estás guardando los caracteres '=' y '>' junto con el nombre y valor, y todo ello, como una cadena de caracteres, que no es lo que espera el método post().)
Lo que se te ha dicho es que guardes la pareja nombre/valor como
dos elementos:
push @orden, $in->name, $valor;
Lo mismo para el resto de
arrays.
De forma correcta, pasas \@pre, como referencia, como segundo argumento de post(). Pero no creo que @pre contenga la información correcta. Usa el módulo Data::Dumper para ver su contenido.
Y tampoco sé dónde has visto que el resultado del método post() es un objeto al que puedes aplicar el método content().
¡Ánimo! que te queda muy poco...