Poco a poco voy a alomizar un código que lee líneas de una tubería delimitada, divide cada una y las asigna a un hash usando una porción hash.¿Cómo puedo asignar muchos atributos de Moose al mismo tiempo?
He convertido el hash en una clase Moose pero ahora no tengo idea de cómo asignar rápidamente los campos del archivo a los atributos de la clase (si es que lo hace).
sé que puedo con bastante facilidad simplemente hacer:
my $line = get_line_from_file;
my @fields = split /\|/, $line;
my $record = My::Record->new;
$record->attr1($fields[0]);
...
pero yo estaba esperando una rápida un trazador de líneas para asignar todos los atributos de una sola vez, algo similar a:
my $line = get_line_from_file;
my %records;
@records{@field_names} = split /\|/, $line;
I He leído acerca de la coacción, pero por lo que puedo decir, no es lo que busco.
¿Es posible?
Gracias
Si 2 de los atributos son matrices (punto y coma delimitado en el archivo) ¿es eso cuando se puede usar coerción? – Sparkles
Sí, puede usar coerción en esa instancia. Deberías forzar un 'Str' a un' Array' usando una función de coerción como 'sub {return [split /;/$ _ [0]}' – friedo