我正在逐漸修改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