gpt4 book ai didi

perl - 如何同时分配多个 Moose 属性?

转载 作者:行者123 更新时间:2023-12-04 13:09:02 25 4
gpt4 key购买 nike

我正在逐渐对一些代码进行 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;

我读过关于强制的文章,但据我所知,这不是我所追求的。

是否可以?

谢谢

最佳答案

使用 zip 将属性传递给构造函数来自 List::MoreUtils模块:

use List::MoreUtils qw/ zip /;

my $object = My::Record->new(
zip @field_names,
@{[ split /\|/, get_line_from_file ]}
);

关于perl - 如何同时分配多个 Moose 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com