当组合来自几个 arrayrefs 的特定数据时,我按照以下代码映射了转换:
my @output_data = map {
my $ss = $everything->{$_->{username}};
my $distance = $gis->distance ( $_->{lat}, $_->{long} => $ss->{Latitude}, $ss->{Longitude} );
my %data;
@data{qw/username addr1 addr2 city state zip rec_lat rec_long/} = @{$_}{qw/username addr1 addr2 city state zip lat long/};
@data{qw/ss_lat ss_long/} = @{$ss}{qw/Latitude Longitude/};
$data{difference} = sprintf("%.3f", $distance->miles);
\%data;
} @$source;
哪个有效。它通过添加来自初始数据集的几个切片(它们单独不包含整行,这正是我关心的)以及两者之间的计算结果来构建散列。有没有办法可以将结尾行干净地组合成一个匿名 hashref 构造函数?或者像这样构建结果数据集是首选的方法吗?