我正在逐渐修改Moose-ifying一些从管道分隔线读取代码的代码,将每个代码段拆分并使用散列片将它们添加到散列表中。我怎样才能同时分配许多驼鹿属性?
我已经把哈希变成了Moose类,但现在我不知道如何快速地将文件中的字段分配给类的属性(如果有的话)。
我知道我可以很容易地只是做:
my $line = get_line_from_file;
my @fields = split /\|/, $line;
my $record = My::Record->new;
$record->attr1($fields[0]);
...
,但我希望的一个快速班轮来分配所有的属性一气呵成,有点类似:
my $line = get_line_from_file;
my %records;
@records{@field_names} = split /\|/, $line;
我已经读过关于强迫的内容,但是从我所能告诉的不是我所追求的是什么。
可能吗?
谢谢
如果2个属性是数组(在文件中用分号分隔)是否可以使用胁迫? – Sparkles 2010-01-11 03:32:46
是的,你可以在这种情况下使用强制。你可以使用'sub' {return [split /; /,$ _ [0]}' – friedo 2010-01-11 04:08:48