Perl 将数组元素复制到散列
我有一个具有以下结构的哈希数组:Perl 将数组元素复制到散列,perl,Perl,我有一个具有以下结构的哈希数组: @fields ( { "id" => "Name", "type" => "Text", "value" = undef, }, { "id" => "DOB", "type" => "Date", "value" = undef, }, ); 我有一个包含以下元素的数组: @data = ("John", "10/10/1970"); 将@data的元素复制到@fields以获得以下内
@fields
(
{
"id" => "Name",
"type" => "Text",
"value" = undef,
},
{
"id" => "DOB",
"type" => "Date",
"value" = undef,
},
);
我有一个包含以下元素的数组:
@data = ("John", "10/10/1970");
将@data
的元素复制到@fields
以获得以下内容而不必迭代和使用数组索引的最佳方法是什么
@fields
(
{
"id" => "Name",
"type" => "Text",
"value" = "John",
},
{
"id" => "DOB",
"type" => "Date",
"value" = "10/10/1970",
},
);
也许您应该将
@fields
改为一个散列,这样您就可以轻松地按名称检索字段
use warnings;
use strict;
my %fields =
(
Name => {
type => "Text",
value => undef,
},
DOB => {
type => "Date",
value => undef,
},
);
my @data = ("John", "10/10/1970");
$fields{Name}->{value} = $data[0];
$fields{DOB}->{value} = $data[1];
use Data::Dumper;
print Dumper %fields;
也许您应该将
@fields
改为一个散列,这样您就可以轻松地按名称检索字段
use warnings;
use strict;
my %fields =
(
Name => {
type => "Text",
value => undef,
},
DOB => {
type => "Date",
value => undef,
},
);
my @data = ("John", "10/10/1970");
$fields{Name}->{value} = $data[0];
$fields{DOB}->{value} = $data[1];
use Data::Dumper;
print Dumper %fields;
如果在一个散列引用中,则散列切片可以工作。但是,由于必须跨多个哈希引用填充特定字段,因此需要一个循环
use List::Util 'min';
$fields[$_]->{value} = $data[$_] for 0 .. min( $#fields, $#data );
如果在一个散列引用中,则散列切片可以工作。但是,由于必须跨多个哈希引用填充特定字段,因此需要一个循环
use List::Util 'min';
$fields[$_]->{value} = $data[$_] for 0 .. min( $#fields, $#data );
这真是太好了。非常感谢。这真是太好了。非常感谢。